Troubleshooting Kepler services
Use the following information troubleshoot your custom Kepler services.
Assembly doesn't contain service module
You must bundle a given set of Kepler services in a module before you add them to an ADS application in Relativity. If the services aren't added to a module, you receive the following error listing the services:
Assembly does not contain service module.
This error also occurs when the ServiceModule attribute hasn't been added to the service module class. For more information, see Modules.
Deleted applications
An application continues to be hosted in a Relativity environment even after you deleted it from the both Application Library and any workspaces where it was installed.
GET endpoint fails
If you implement an endpoint with HttpGet attribute but don't also use a Route attribute, it won't function properly. The Kepler framework automatically adds the FromBody attribute on all parameters that aren't route parameters. For more information, see Routing.
Invalid RoutePrefix attribute causes 404 error
If you set your RoutePrefix attribute with an empty string(""), a 404 status code is returned indicating an error:
[RoutePrefix("", VersioningStrategy.None)]
For more information, see Routing.
Invalid WebService attribute causes 500 error
If you set your WebService attribute an empty string(""), a 500 status code is returned indicating an error:
[WebService("")]
For more information, see Routing.
Missing or no endpoints on a service
Relativity won't host a Kepler service with the following endpoint implementation issues. It also returns a 404 status code when you attempt to the call the service with these issues:
- Missing endpoints
- No endpoints
- Endpoints without the public qualifier in the service implementation
If you implement a service that isn't public, and it has any of the issues listed above, the EventViewer contains the following error message:
Error: Value cannot be null. Parameter name: element
Multiple modules error
If your ADS application has several modules within the same namespace used to bundle a set of Kepler services, you won't be able to import it into Relativity. The following error appears listing the affected services:
Assembly contains more than one service module for namepsace My.Random.Kepler: MyServiceModule, ServiceModule
Multiple service implementations error
You can only import a single implementation of a specific service to Relativity as either a single standalone RAP file, or a resource file associated with an ADS application. If you attempt to import multiple implementations, the following error message appears listing the affected assemblies:
Cannot have more than one service implementation for a given service. List of assemblies containing implementations of the service
IRandomService: My.Random.Kepler.Service.Implementation.One, My.Random.Kepler.Service.Implementation.Two
Namespace doesn't exist error message
Don't create a service in the Services namespace. When a service is loaded that has a module and interface implemented in Services.Interfaces namespace, the following error message appears:
(555) Kepler bootstrapping failed: The type or namespace name 'Interfaces' does not exist in the namespace
'Relativity.Kepler.Services' (are you missing an assembly reference?)
ServiceAudience error
You must decorate your service interface with the ServiceAudience attribute. If this attribute is missing, the following error appears:
(555) One or more Kepler services has errors: ITestService: Service Audience is not specified
For more information, see ServiceAudience attribute.