Skip to content

fix(meteor-backend): PulseVault upload reliability fixes#449

Open
Dharp02 wants to merge 1 commit into
mainfrom
fix/pulsevault-upload-reliability-v2
Open

fix(meteor-backend): PulseVault upload reliability fixes#449
Dharp02 wants to merge 1 commit into
mainfrom
fix/pulsevault-upload-reliability-v2

Conversation

@Dharp02

@Dharp02 Dharp02 commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator
  • Upgrade @mieweb/pulsevault 0.1.0 -> 0.1.1 (fixes missing dist/core.js crash on boot in this workspace's installed artifact state)
  • Normalize x-forwarded-proto header (comma-separated/odd-cased values from upstream proxy chain caused 400 'Invalid x-forwarded-proto')
  • Tune Node HTTP server timeouts (requestTimeout=0, keepAliveTimeout=75s) so slow mobile video uploads aren't killed mid-transfer (was causing uploads to stall at random % and restart from 0)
  • Add stale-upload cleanup: retried TUS create POSTs for artifacts whose earlier attempt aborted (ECONNRESET) no longer 409 forever; token-gated so only the upload's own capability token can trigger cleanup
  • Persist upload reservations in Mongo (pulsevault_reservations, 24h TTL) instead of an in-memory Map so a server restart between upload-finish and attachment-creation doesn't orphan the file
  • Finalize orphaned 'ready' uploads that never got attached
  • Fix pulsevault.reserve reusing a completed existingVideoid from the client's stale localStorage cache, which caused the same video to be re-attached to a ticket on every QR re-scan and 409'd real new uploads

- Upgrade @mieweb/pulsevault 0.1.0 -> 0.1.1 (fixes missing dist/core.js
  crash on boot in this workspace's installed artifact state)
- Normalize x-forwarded-proto header (comma-separated/odd-cased values
  from upstream proxy chain caused 400 'Invalid x-forwarded-proto')
- Tune Node HTTP server timeouts (requestTimeout=0, keepAliveTimeout=75s)
  so slow mobile video uploads aren't killed mid-transfer (was causing
  uploads to stall at random % and restart from 0)
- Add stale-upload cleanup: retried TUS create POSTs for artifacts whose
  earlier attempt aborted (ECONNRESET) no longer 409 forever; token-gated
  so only the upload's own capability token can trigger cleanup
- Persist upload reservations in Mongo (pulsevault_reservations, 24h TTL)
  instead of an in-memory Map so a server restart between upload-finish
  and attachment-creation doesn't orphan the file
- Finalize orphaned 'ready' uploads that never got attached
- Fix pulsevault.reserve reusing a completed existingVideoid from the
  client's stale localStorage cache, which caused the same video to be
  re-attached to a ticket on every QR re-scan and 409'd real new uploads
@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown

🚀 Preview Deployment Ready

Service URL
App https://mieweb-timehuddle-fix-pulsevault-upload-reliability-v2.os.mieweb.org
API (Meteor) https://mieweb-timehuddle-fix-pulsevault-upload-reliability-v2-api.os.mieweb.org

Preview auto-deletes when this PR is closed.

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

Labels

Projects

Status: Ready

Development

Successfully merging this pull request may close these issues.

1 participant