As described in the KCS linked, when the Routing Policy is in the policy chain, a trailing slash is appended to the end of the private base url of the upstream.
This seems to be happening here
Can be replicated with a configuration like:
"policy_chain": [ { "name": "routing", "version": "builtin", "enabled": true, "configuration": { "rules": [ { "url": "https://echo-api.3scale.net:443/foo", "owner_id": 2, "owner_type": "BackendApi", "condition": { "operations": [ { "match": "path", "op": "matches", "value": "^(/backend1/.*|/backend1/?)" } ] }, "replace_path": "{{uri | remove_first: '/backend1'}}" } ] } }, { "name": "apicast", "version": "builtin", "configuration": {} } ]
Request/Response:
$ curl "https://test-3scale-apicast-staging.amp210.apps-crc.testing:443/backend1?user_key=abc" { "method": "GET", "path": "/foo/", "args": "user_key=c8d8833898bc331631fb09e4ec853b72", "body": "", [...]
i.e. `/foo/` is accessed instead of `/foo`.
This does not happen if the routing policy is not in the policy chain (i.e. if the backend is configured to the public path: `/`)
- links to