Report a renderer crash
Records that the renderer for an integration archive failed (render error, unhandled exception, or unhandled rejection). Best-effort telemetry used for diagnosing broken renderers in production.
Authorization
OAuth2 upl:bucket:readOAuth 2.0 authorization
In: header
Scope: upl:bucket:read
Header Parameters
Define the version of the Connect protocol
1Define the timeout, in ms
Request Body
application/json
The renderer archive that crashed. UUID of the upload whose
renderer config the host is serving.
uuidWhat kind of failure the renderer SDK observed. These map 1:1 to the SDK's three crash paths (React ErrorBoundary, window.onerror, window.onunhandledrejection) so we can slice telemetry by failure mode — render-time crashes vs async failures usually have very different root causes.
"RENDERER_CRASH_KIND_UNSPECIFIED" | "RENDERER_CRASH_KIND_RENDER" | "RENDERER_CRASH_KIND_ERROR" | "RENDERER_CRASH_KIND_UNHANDLED_REJECTION"Error.name from the SDK (e.g. "TypeError"). Bounded so we can index by it without blowing log lines up.
length <= 256Error.message — the user-facing failure description.
length <= 4096Full stack trace, when the browser gives us one. Renderers in production builds may have minified stacks; we don't try to source-map server-side.
length <= 32768Where the renderer thinks it was when it crashed — the iframe's
window.location.href at the time the boundary fired. Useful for
narrowing down which entry / hash-route was active.
length <= 2048Iframe-side timestamp (Unix millis). The server records its own received_at — this lets us see how long crashes sat in the host before being forwarded, which matters when the host buffers.
int64Optional opaque integration ID, if the host knows which integration owns the renderer that crashed. Helps grouping when one archive is shared by several integrations.
uuidThe content type whose renderer config drove the iframe load. Optional because bucket / folder renderers aren't matched via a content type (their config attaches to a bucket type instead). Lets integration devs filter their crash list by content type.
uuidnavigator.userAgent at crash time, clamped. Most useful field for narrowing "only happens in Safari"-style bugs. Bounded so a goofy UA string can't blow the row up.
length <= 512window.innerWidth / window.innerHeight at crash time. 0 means the iframe never measured (extremely rare; serves as a "missing" marker rather than a real value).
Optional build hash from the renderer's config.json. Lets us group crashes per renderer build even when several builds share an archive_upload_id — e.g. when a developer iterates inside a single session. Populated by renderer-plugin-vite when present; empty when the build pipeline doesn't stamp one.
length <= 64Response Body
application/json
application/json
curl -X POST "https://uploads-api.xeonr.io/uplim.api.v1.IntegrationsService/ReportRendererCrash" \ -H "Connect-Protocol-Version: 1" \ -H "Content-Type: application/json" \ -d '{}'{}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}