Revclust
DocsPricing
Log inStart free
DocsPricingLog inStart free

Start Here

  • Overview
  • Access and Setup
  • Getting Started

Integration

  • Integrate the SDK
  • Trigger Your First Incident

Verification

  • Verify and Observe

Viewer

  • Viewer Workflow

Help

  • Troubleshooting

Reference

  • SDK Reference

Documentation

Troubleshooting

Use status, capture results, and upload signals to find the first failure quickly.

Start With What You Can See

When the first setup pass fails, do not guess. Start with status, the immediate result from captureInvariantFailure(...), uploadSnapshot.lastErrorCode, and any uploadEvents for the same captureId.

Initialization Throws Or Never Produces A Usable Client

If Revclust.initialize(...) throws, stop there. Log the StateError and fix startup before wiring more triggers.

Status Stays Misconfigured Or Not Provisioned

RevclustStatus.misconfigured means the SDK key is missing, malformed, or otherwise invalid for bootstrap. RevclustStatus.notProvisioned means the key is well-formed but unavailable or revoked. In both cases, capture is blocked and setup should stop. Check Apps, the key status, the copied rpk_... value, and the value injected by your build.

Status Settles At Degraded Or Upload Blocked

RevclustStatus.degraded is not one failure mode. It can mean upload connectivity is unavailable while local queueing still works, or it can mean local capture setup failed before the SDK became usable. RevclustStatus.uploadBlocked means local queueing still works, but upload access is not currently usable.

If you stay in degraded and captureInvariantFailure(...) still returns RevclustCaptureQueued, check reachability and inspect revclust.diagnostics.bootstrap for the last HTTP status, error category, retryability, and safe diagnostic message. If you stay in degraded and captureInvariantFailure(...) returns RevclustCaptureBlocked, treat that as a local capture startup failure. If you stay in uploadBlocked, the likely problem is upload access rather than local capture. In any queueing-allowed case, watch uploadSnapshot.pendingCount and uploadEvents; if work still has not drained after the thirty-second observer window in Verify and Observe, treat the integration as blocked.

Capture Returns Blocked

RevclustCaptureBlocked means no incident was created. The returned status tells you why. disabled means Revclust.initialize(...) has not completed in this app process. initializing means setup is still in flight. misconfigured and notProvisioned mean setup must be corrected before trying again.

If the blocked result occurs while you expect a healthy setup, log the returned message and the current status together.

Capture Builds Or Persists Failed

RevclustCaptureBuildFailed means the invariant failure reached local pack build but failed before it could be queued. RevclustCapturePersistenceFailed means the pack built but could not be stored in the local queue. These are local app or device failures, not backend acceptance failures.

If build fails, inspect the returned message first. If persistence fails, treat the device or simulator runtime as suspect and retry on a clean app process before escalating.

Upload Snapshot Does Not Drain

uploadSnapshot.pendingCount and uploadSnapshot.uploadingCount tell you whether queued work is moving. A healthy first run briefly shows queued work, then active upload, then returns to zero. If counts stay above zero and lastErrorCode remains set, use that error as the coarse boundary:

RevclustUploadErrorCodeWhat to check next
transportUnavailableUpload connectivity is unavailable. Check reachability and retry later.
authUpload access is blocked or expired. Recheck setup.
misconfigurationThe SDK key is not usable for this setup. Stop and correct the config.
invalidRequestThe upload payload or request shape was rejected. Check the upload rejection code and message.
unsupportedSchemaThe backend rejected the schema version. Verify the shipped SDK version and compatibility.
blobTooLargeThe pack exceeded current hosted size limits. Reduce captured scope or escalate the pack size.
internalErrorLocal capture or the backend failed unexpectedly. Capture the visible event codes and escalate with them.

Upload Events Reject Or Fail

RevclustUploadRejected means the backend made a final decision on the payload. Use the rejection code and message directly in the report.

RevclustTransportFailure means upload failed before the backend accepted or rejected the pack. If retryable is true, the queue will keep trying. If the same failure repeats and the queue does not recover, include the statusCode, message, and current lastErrorCode when you ask for help.

Accepted Pack But Viewer Access Fails

If you receive RevclustUploadAccepted, the backend already accepted the pack. At that point, a missing or inaccessible incident in the viewer is no longer an SDK capture problem. Use the accepted packId or viewerUrl, sign in through revclust.com/get-started, and make sure you are using the right Revclust account for that incident.

What To Include When Escalating

When you need help, report the current status, the immediate capture outcome type, the captureId if one exists, uploadSnapshot.lastErrorCode, and any upload event code or statusCode you observed.

Send that report through your normal Revclust support path. If you are signed into the viewer, Feedback can also include viewer-specific failures such as a missing or inaccessible accepted pack.

On this page

  1. Start With What You Can See
  2. Initialization Throws Or Never Produces A Usable Client
  3. Status Stays Misconfigured Or Not Provisioned
  4. Status Settles At Degraded Or Upload Blocked
  5. Capture Returns Blocked
  6. Capture Builds Or Persists Failed
  7. Upload Snapshot Does Not Drain
  8. Upload Events Reject Or Fail
  9. Accepted Pack But Viewer Access Fails
  10. What To Include When Escalating
TermsPrivacy Policy