Yes. We use routes in a significant way. Our application needs to support multi-tenancy and we are attempting to support it by making the first position in the PATH_INFO be our tenant identifier (portalCode). We also want to distinguish between different entrypoints to our application. So a request from Salesforce would be labelled as such using the appropriate route and associated matched variables.
// Your Application Routes
addRoute(pattern=":portalCode/:handler?/:action?",matchVariables=“entrypoint=web”);
Then, we have a portalInterceptor.cfc that ensures the portalCode is a reference to a valid portal, and resets the baseURL so that calls to event.buildLink() will include the portalCode in the URL path.
I did some digging into the coldbox code and it looks as though the sesBaseURL is stored in the cbcontroller, which lives in the ColdFusion application scope. Ouch. If I had to guess, our solution to modify the sesBaseURL on each request is causing this issue. I think we need to find a different way to persist the portalCode and entrypoint in our calls to event.buildLink(). Any ideas?
I’m still unable to reproduce the error on demand, and yet it is still occurring on our production servers. Louis, you asked about routes. What might routes have to do with it? Where else might I look?