You are not logged in.
Pages: 1
Hello everyone,
I’m working on a Delphi project using mORMot2, with a typical client-server architecture. The backend is connected to a PostgreSQL database, and the server is implemented using TRestHttpServer. On the client side, I’m using TRestHttpClient to connect to the server, perform authentication, and access the exposed service interfaces.
Up until recently, everything was functioning perfectly. The client connected to the server with no problems, authenticated successfully, and was able to execute all CRUD operations through the exposed interfaces. I didn’t make any changes to the codebase, and nothing appeared to break in deployment. Everything was solid.
However, all of a sudden, the client started throwing an exception — and consistently — when attempting to use HttpClient.Services. More specifically, the error occurs at the moment the service interface is accessed on the client side. The application throws the following:
EServiceException:
TServiceFactoryClient.Create():
Interface not supported by server
errorCode: 403
errorText: Authentication Failed: Invalid signature (0)
This is particularly confusing because, as I mentioned, no code was changed between the working state and this new behavior. The server is still running, the database connection is alive and well, and the client is connecting to the same endpoint using the same authentication credentials as before. The SetUser call is still in place with the same login details, and I’ve verified that the
model and interface declarations between the client and server are identical.
The exception occurs specifically when the client attempts to access a service interface through:
HttpClient.ServiceDefine([IMyServiceInterface],sicShared)
This was previously working without error. Now, it consistently fails at this point, returning a 403 with an invalid signature message, suggesting that some internal mismatch or signature validation is now failing where it wasn’t before
Last edited by youssef (2025-04-25 17:23:54)
Offline
There could be plenty of reasons why it occurs.
Enable the logs on both sides.
Try to debug a bit more.
You can send me the logs by email so that I could look at it.
Is the URI correct on the client side (with the proper ending signature)?
Did you change the source code of the framework, or you client or server side?
Online
Please check your email; I have sent you my log
Offline
There are some EAcessViolation.
I have no idea where it happened in your code base.
There is clearly not enough information in this log.
I wrote to enable the logs - I meant in verbose mode, of course.
You need to fix this access violation first of all.
It seems to make the server in an unresponsive state.
Enable the stack trace.
And enable the debug information.
Also ensure you have a newer mORMot revision - 2.3.9510 is clearly old.
Which compiler do you use?
Enable the memory leaks reporting: it may help tracking the EAccessViolation.
Online
Pages: 1