-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Common issues and fixes when using tremor-client-java.
IllegalArgumentException: baseUrl must be a valid absolute URL
The client requires an absolute URL such as http://localhost:8080/tremor or https://tremor.example.com/tremor.
String tremorKey = "...";
TremorClient.builder(tremorKey).baseUrl("http://localhost:8080/tremor").build();
TremorClient.builder(tremorKey).baseUrl("https://tremor.example.com/tremor").build();Do not pass a relative path such as /tremor.
IllegalArgumentException: apiKey is required
The key passed into TremorClient is blank or missing.
TremorClient.builder(tremorKey).baseUrl("http://localhost:8080/tremor").build();TremorApiException with an authentication or authorization status code.
- wrong Tremor key
- wrong Tremor environment
- request sent to the wrong server
- verify the key you passed into
TremorClient - verify the Tremor base URL
- verify the final request target is
/tremor/api/v1/ingest
If you catch TremorApiException, inspect getStatusCode(), getResponseBody(), and getUrl().
TremorSerializationException: Tremor response did not include a fingerprint
The server returned success without the expected response body shape.
Check the Tremor server response body. The client expects a success response shaped like:
{"fingerprint":"abc123"}IllegalArgumentException thrown before any HTTP request is observed.
-
erroris missing -
error.classNameis blank -
error.messageis blank - too many tags
- too many breadcrumbs
-
userCustomDatais too deeply nested
Start from the smallest valid event and add fields incrementally:
TremorEvent event = TremorEvent.builder()
.error(
TremorError.builder()
.className("java.lang.IllegalStateException")
.message("checkout failed")
.build())
.build();Other parts of the application start failing after closing the Tremor client.
This usually means the application shut down its own shared OkHttpClient, not TremorClient.
Pass the shared OkHttpClient into TremorClient and manage its lifecycle at the application level:
OkHttpClient shared = new OkHttpClient();
String tremorKey = "...";
TremorClient client =
TremorClient.builder(tremorKey)
.baseUrl("https://tremor.example.com/tremor")
.httpClient(shared)
.build();TremorClient.close() does not shut down a caller-provided client.
The application continues running and no exception reaches the caller.
That is the intended behavior of reportAndSuppress(...).
Use send(...) when you want reporting without swallowing the original failure.
Use reportAndSuppress(...) only for best-effort paths such as background jobs, metrics, or non-critical refresh work.
Tremor Java Client | Repository | Issues | README