Error Manager (.NET)

The Error Manager API exposes a single endpoint for creating errors, which can be displayed in the Error tab in Relativity.

You can also interact with the Error Manager API through the REST API. See Error Manager service.

This page contains the following information:

The Relativity.Environment.SDK contains this API. For compatibility and package installation instructions, see Download the SDKs and NuGet packages.

Guidelines for Error Manager API

Review the following guidelines for working with this service.

  • Set {versionNumber} to the version of the API, using the format lowercase v and the version number, such as v1.

Fundamentals for using Error Manager

Key concepts or other explanatory information

Review the following information to learn about the methods, classes, and other entities used by the Agent Manager service.

The Relativity.Environment.{versionNumber}.Error namespace contains the IErrorManager interface that exposes the following methods:

  • CreateAsync() method - adds a new error log to a database. It returns the Artifact ID of the new error log.

The Relativity.Environment.{versionNumber}.Error.Models namespace contains the following class used by the Error Manager API:

  • CreateErrorRequest class - represents information about an error log.

Guidelines or best practices

  • To set up a proxy to interact with the Error Manager API, call the CreateProxy() method on the object returned by the GetServiceManager() method. See Best Practices for the Services API.
  • If you plan to use Error Manager API using the IErrorManager interface in your RAP application, remember to add the Relativity.Environment.SDK package to your RAP definition.
  • In order to use Error Manager endpoints, you need to import the Relativity.Environment.SDK package. The Error Manager interface is found under the Relativity.Environment.{versionNumber}.Error namespace.
  • Every Error log has its own ArtifactID (returned as a response of CreateAsync() method), enabling you to easily find it on the Error tab.

Create an error log

Create the CreateErrorRequest object and pass it through IErrorManager.CreateAsync() method.

Note: Please remember that all properties except Message are optional. The method returns single integer.

Create an error log using service manager (recommended)

using Relativity.Environment.{versionNumber}.Error;
using Relativity.Environment.{versionNumber}.Error.Models;
    
Client.SamplesLibrary.Helper.IHelper helper;
    
// Create a proxy
using (IErrorManager errorManager = helper.GetServicesManager().CreateProxy<IErrorManager>(ExecutionIdentity.User))
{
    var createErrorRequest = new CreateErrorRequest
        {
            Message = "Single line message",
            FullError = "Detailed error message", // exception.ToString()
            Server = System.Environment.MachineName,
            Source = "Name of my agent",
            StepsToReproduce = string.Empty,
            URL = "URL to your custom page or kepler",
            Workspace = new ObjectIdentifier { ArtifactID = -1 },
        };
    int errorLogArtifactID = errorManager.CreateAsync(createErrorRequest);
}

You can also use an HttpClient directly if you do not use the Relativity.Environment.SDK nuget package.

Create an error log using an HTTP client

using System.Net.Http;
using Newtonsoft.Json;
 
private HttpClient GetHttpClient()
{
    HttpClient httpClient = new HttpClient();
 
    httpClient.BaseAddress = new Uri("https://localhost/");
    httpClient.DefaultRequestHeaders.Add("X-CSRF-Header", "-");
    httpClient.DefaultRequestHeaders.Add("Authorization", "Basic " +
        Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes("test@test.com:SomePassword")));
 
    return httpClient;
}
 
const string errorManagerEndpoint = "Relativity.Rest/api/relativity-environment/{versionNumber}/workspaces/-1/errors";
 
var payloadObject = new
{
    createErrorRequest = new
    {
        Message = "Single line message",
        FullError = "Detailed error message", // exception.ToString()
        Server = System.Environment.MachineName,
        Source = "Name of my agent",
        StepsToReproduce = string.Empty,
        URL = "URL to your custom page or kepler",
        Workspace = new
        {
            ArtifactID = -1
        }
    }
};
 
StringContent payload = new StringContent(JsonConvert.SerializeObject(payloadObject), Encoding.UTF8, "application/json");
HttpResponseMessage response = await GetHttpClient().PostAsync(errorManagerEndpoint, payload);
 
string responseMessage = await response.Content.ReadAsStringAsync();
int artifactID = Convert.ToInt32(responseMessage); 

Additional Resources

DevHelp Community GitHub Release Notes NuGet

Share knowledge with the Relativity developer community.

Access tools and resources to build an application.

Review the most recent product release notes.

Create .NET Apps faster with NuGet.