46 lines · 1.9 KB

Artifacts (beta) internal error report template

Use this when Cloudflare Artifacts binding calls fail with internal error; reference = <id>. The site admin page at /admin/artifacts shows failure rates by operation and the reference ids, and its Copy Cloudflare report button fills in this template.

Where the data comes from

  • artifacts_call_stats: hourly call and failure counts per operation (approximate, flushed from each isolate at most every 30 seconds).
  • artifacts_failures: one row per untyped failure that survived every retry, with its reference id (kept for 30 days).

To query D1 directly:

SELECT operation, SUM(calls) AS calls, SUM(failures) AS failures,
       ROUND(100.0 * SUM(failures) / MAX(SUM(calls), 1), 2) AS failure_pct
FROM artifacts_call_stats
WHERE hour >= (strftime('%s', 'now') - 86400) * 1000
GROUP BY operation ORDER BY failures DESC;

SELECT datetime(created_at / 1000, 'unixepoch') AS at, operation, reference, target, attempts
FROM artifacts_failures ORDER BY created_at DESC LIMIT 50;

Template

Subject: Artifacts (beta) internal errors: "internal error; reference = …"

Product: Cloudflare Artifacts (beta), Workers binding
Account / namespace: <account id> / <ARTIFACTS_NAMESPACE>
Window: <start ISO time> to <end ISO time>

Failure rate by operation (untyped failures / calls):
- <operation>: <failures> / <calls> (<rate>%)

Reference ids (most recent first):
- <reference>  <ISO time>  <operation>  <artifacts repo name[:path]>  attempts=<n>

Observed behaviour: the binding call rejects with an untyped error (no ArtifactsError code) whose message is
"internal error; reference = <id>". Idempotent reads are retried up to 3 times with jittered backoff; the
listed failures persisted through every attempt.
Expected: a typed ArtifactsError code, or success.
Impact: <pages/pushes affected, user-visible 502s>
Reproduction: <repo size, operation, whether it recurs for the same repo/ref>