Files
Deep-Package-Inspection/docs/log/2026-07-24-1052-adhoc-deploy-static-assets.md
T

2.7 KiB

Iteration Log - 2026-07-24-1052 - Deployment Static Assets Omission Fix (Ad-hoc)

Request

The user reported that the dashboard overview screen still could not be opened and crashed immediately on entering credentials.

Steps Taken

  1. Systematic Asset Check:
    • Developed a TDD test test-all-assets.js to programmatically scan and download all preloaded dynamic stylesheets and JavaScript chunks fetched by /login on the production server.
    • Discovered that chunk file /_next/static/chunks/2p64h4x46qcn0.js returned a 404 Not Found on the server, although it existed locally.
  2. Deployment Bug Found:
    • Examined deploy-sftp.js and realized that neither .next/static (which holds all JS and CSS chunks) nor public (which holds assets like images, icons, and fonts) was included in the UPLOAD_MANIFEST.
    • The server was running on obsolete static assets, mismatching the newly built server bundles, causing direct chunk loading failures.
  3. TDD Setup & Fix:
    • Created sftp_manifest_test.js asserting that scripts/deploy-sftp.js includes .next/static in its upload list.
    • Confirmed the test failed initially.
    • Appended { local: '.next/static', remote: '.next/static', type: 'dir' } and { local: 'public', remote: 'public', type: 'dir' } to the UPLOAD_MANIFEST array in scripts/deploy-sftp.js.
    • Re-ran node test/sftp_manifest_test.js which successfully passed.
  4. Build and Deployment:
    • Compiled Next.js locally (npm run build).
    • Ran node scripts/deploy-sftp.js which successfully uploaded 33 groups of files (including the entire .next/static folder) and reloaded PM2.
  5. Validation:
    • Re-ran the automated asset verification test node test/test-all-assets.js.
    • Result: === Verification Complete: 14 passed, 0 failed ===. The previously missing chunk 2p64h4x46qcn0.js resolved successfully with 200 OK (6358 bytes).
    • Ran node test/fetch-remote-dashboard.js verifying successful login and load of the overview page / with 200 OK.

Current State

  • The deployment process has been fixed and now uploads all static chunk resources and public assets correctly.
  • All dynamic JS chunks resolve on the production server with 200 OK.
  • The dashboard is 100% accessible.

Considerations for Next Time

  • Deployments of Next.js standalone applications must always couple .next/standalone server builds with .next/static static files to prevent runtime chunk load failures.