In mongoose version 4, event->request_info->uri was delivered to the user handler already url_decoded ("%20" becomes " ", etc). In mongoose version 6, http_message.uri delivered to the user handler is NOT url_decoded (still has "%20", etc). From documentation, it is not clear who is supposed to do the decoding - the mongoose library or the user. Note that running url_decode twice is incorrect and will mangle the URL (url_decode is not idempotent). Is current behaviour a bug (uri should be decoded) or an omission in the documentation ("user MUST url_decode http_message.uri before using it"). What other data fields the user must url_decode before using? http_message.query_string too? K.O.