Skip to main content
CollectError is a structured diagnostic sink for runtime errors raised by the Chrome extension while executing a saved blueprint (auth walls, page-not-found, timeouts, selector failures, etc.). Each row captures the provider, error classification, severity, and optional contextual metadata at the moment the failure occurred. Rows are created exclusively by CollectErrorService.write() via POST /v1/collect/blueprint-error; the same service also opens a GitHub issue for human triage. Rows are soft-deleted and pruned opportunistically (sampled ~1 in 20 writes) after 30 days. The entity belongs to a nullable Workspace and optionally references the parent Collect session that triggered the error.
Internal object. Not currently exposed on the public REST API. The operations below describe the intended contract.

API operations

Data model

Attributes

Relationships

System-computed

  • error_id โ€” generated by gen_random_uuid() at INSERT time; never modified
  • created_at โ€” set via MikroORM onCreate hook (new Date()) on INSERT; no updatedAt hook on this entity
  • deleted_at โ€” managed by CollectErrorService opportunistic pruning (~1/20 writes prune rows older than 30 days via soft-delete); not set by standard MikroORM lifecycle hooks
  • workspace_pk โ€” FK resolved from request context by CollectErrorService.write(); the caller supplies the Workspace entity reference, not a raw ID
  • collect_pk โ€” FK resolved from the paired Collect session if one is active; NULL when the error arrives without a session context

Example

Source: /Users/maximechampoux/platform/apps/api/src/database/entities/CollectError.ts ยท domain: ingestion ยท tier: Infrastructure