I’m using the webhook node and I’m having the same issue… my test webhooks are working fine, but the production ones give me the error above. If I’m not “executing workflow” on the test situation, I get an error that is a json message that looks like this:
{
"code": 404,
"hint": "Click the 'Execute workflow' button on the canvas, then try again. (In test mode, the webhook only works for one call after you click this button)",
"message": "The requested webhook \"GET 4cf859a3-515c-4dbf-8066-7ec9ef97f186\" is not registered."
}
if I do the same for production, I get:
HTTP/1.1 404 Not Found
Connection: keep-alive
Content-Encoding: gzip
Content-Security-Policy: default-src 'none'
Content-Type: text/html; charset=utf-8
Date: Mon, 22 Nov 2021 22:43:57 GMT
Strict-Transport-Security: max-age=15724800; includeSubDomains
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Powered-By: Express
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /webhook/4cf859a3-515c-4dbf-8066-7ec9ef97f186</pre>
</body>
</html>
I’m self hosted, using docker and an nginx reverse proxy to get my requests into the container. I can reproduce the same behavior by using curl localhost:5678/webhook-test/XXX (it works) or curl localhost:5678/webhook/XXX (it doesn’t). These curl commands within the container bypass the nginx so im talking directly to the node process that is running n8n.
I know about the post vs get thing too, but in this case, the only difference is the removal of “-test” from the URL path, so nothing should be different there.
As I said before, I’m using the webhook node. It’s weird to me that im getting back some HTML with a 404 in the case of /webhook/xxx and json with /webhook-test/xxx.
I’ve done the save and activate, but no luck 
Any ideas?