Skip to content

Investigate Edge fixture container exit 135 on unchanged SDK source #510

Description

@kvz

Why

The Supabase Edge fixture fails on main after #507 despite the PR checks having
passed. A retry reproduced the same container exit. Preserve the packaging gate
and investigate before treating the follow-up Changesets release (#509) as ready.

Evidence

A fresh local ARM run of corepack yarn test:sdk:edge on the same source tree
passed on September 22, 2026, including actual function startup/signing:

Package Raw bundle bytes Compressed upload bytes Native files
@transloadit/node 28,025,751 2,454,998 0
transloadit 28,025,568 2,459,693 0

This is useful counterevidence, not a replacement for the failing GitHub run.

Investigation / done criteria

  • Capture sanitized container state, logs, runner/image versions, and resource
    evidence before removing a failed bundler container.
  • Compare a minimal no-SDK entrypoint with the packaged SDK on the affected
    runner; distinguish runtime/environment failure from SDK module-graph failure.
  • Account for fresh-consumer dependency resolution instead of assuming identical
    Git trees alone guarantee identical installed transitive dependencies.
  • Restore reliable CI without disabling the native-dependency or bundle-size
    checks, or replacing a genuine failure with unconditional retries.

Activity

  1. kvz commented on Sep 22, 2026

    @kvz
    MemberAuthor

    Compared the full setup logs for the green PR job and both failed main attempts.
    All three report the same visible software versions:

    • GitHub runner 2.337.0 and provisioner 20260828.587.
    • Ubuntu 24.04.5, runner image ubuntu-24.04 / 20260907.300.1.
    • Host Node 24.20.0 and npm 11.19.0.
    Job Result Reported Azure region
    106902354932 (PR) Pass eastus
    106927487478 (main attempt 1) Exit 135 westus2
    106930457048 (main attempt 2) Exit 135 westcentralus

    There is no visible runner-image or Node version change explaining the failure.
    The different hosts/regions are observations, not proof of a regional cause.
    Hardware/kernel details, failed-container state and the fresh consumer's exact
    installed dependency graph are still needed to isolate it.

  2. kvz commented on Sep 23, 2026

    @kvz
    MemberAuthor

    Root cause is now established: a race in the pinned Supabase runtime's Deno/SQLite
    analysis-cache initialization, not a recurrence of the native SDK dependency bug.

    Three native crash dumps land in SQLite walIndexAppend while initializing the
    analysis cache, after Deno has unlinked/recreated its database. Supabase creates
    independent cache instances for identical paths; the recovery path treats a busy
    database as something to delete. A reduced, one-line CommonJS package without
    Transloadit or any registry dependency
    reproduces exit 135 in 6/90 attempts.

    Full upstream report, reduced reproduction, source links and stack:
    supabase/edge-runtime#746.

    Fix PR: #511. It gives only the test
    bundler a fresh bounded 256 MiB tmpfs cache; no SDK runtime code or dependencies
    change. The same SDK/image passed 90/90 x64 diagnostic attempts this way. That is
    mitigation evidence, not proof of an upstream fix. Preheating a shared disk cache
    was rejected because it still logged unsafe database deletion.

    Both packed package names pass locally, including real HTTP/HMAC execution,
    zero native image dependencies and the unchanged size budgets. Published 4.13.0
    still fails the gate with 77 native image paths. Red-first tests, council review
    and post-review yarn verify:full are complete. All checks passed on
    final head a04cb6fa2e9aa547b0a813887cc93d75a9f41b5c in
    https://github.com/transloadit/node-sdk/actions/runs/35829346787, including both
    real x64 Edge probes (zero native files, approximately 2.45 MB upload each),
    Next browser tests, release dry run and Node 20/22/24. The preceding full run
    35828672200 also passed before the final documentation-only commit. The old
    failed main run is not being relabeled or retried until green. The fix PR remains open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions