Files
Jyotisha/debug-npm-integrity-failure.md
T
linmeng 2f4d00c528
Deploy staging to test server / deploy (push) Successful in 6m34s
fix: complete self-hosted staging identity integration
Align staging deployment, authentication, and admin access with the self-hosted identity boundary, including regression coverage and deployment diagnostics.
2026-07-30 14:54:46 +08:00

35 lines
1.7 KiB
Markdown

# Debug Session: npm-integrity-failure
Status: [OPEN]
Started: 2026-07-29
## Symptom
Gitea staging Web image build fails during `npm ci` for `server-only@0.0.1` with `EINTEGRITY`. The downloaded 477-byte tarball digest differs from `package-lock.json`.
## Constraints
- Do not modify business logic during evidence collection.
- Do not expose registry credentials or application secrets.
- Preserve the current staging deployment until a verified image and migration are ready.
## Hypotheses
1. The lockfile integrity for `server-only@0.0.1` is incorrect.
2. The Runner network path receives corrupted or substituted registry bytes.
3. BuildKit/npm cache contains a corrupted tarball and retries reuse it.
4. A proxy or registry override affects the Runner despite the npmjs URL in logs.
5. The upstream tarball changed while registry metadata and lockfile diverged.
## Evidence
- `package-lock.json` expects `server-only@0.0.1` integrity ending in `GNSg==`.
- The failed Gitea task downloaded 477 bytes and computed integrity ending in `iswNA==` twice.
- Current registry metadata reports integrity ending in `iswNA==`.
- A direct download from `registry.npmjs.org` on xiaoxin is 477 bytes and computes the same integrity ending in `iswNA==`.
- A clean Docker Hub probe was blocked by an unrelated Docker Hub timeout.
Conclusion: H1/H5 confirmed. The locked integrity is stale relative to the current tarball. H2/H3/H4 are rejected by the consistent direct-download and metadata evidence.
## Fix
Update only the stale `server-only@0.0.1` integrity entry in `package-lock.json` to the digest proven by registry metadata and direct download.
## Verification
Pending post-fix workflow.