Following up on @rwv37’s report of permanent 0 B/s hangs: we have isolated one concrete failure mode in Proton-API-Bridge.
After the first block upload failed, uploadPendingBlocks returned before its sibling workers finished. Those workers could remain blocked on an unbuffered result channel while still holding weighted-semaphore permits. Repeated failures could therefore consume every upload slot, leaving the process alive but unable to start another block upload.
rclone/Proton-API-Bridge#8 fixes this narrow failure mode. It now has two regression tests — including an end-to-end test independently contributed by Jose Vega — full Go 1.26 unit, race, formatting and lint verification, green CI on the exact head, and confirmation from two independent real-world deployments.
This does not claim to explain every long hang. It does reproduce and prevent the semaphore leak matching this specific permanent-idle pattern.
While preparing the fix, we also reviewed the bridge’s current queue. The rclone fork is active, but seven pull requests are awaiting review, and coordination is distributed across individual PRs because Issues and Discussions are disabled. A first-pass triage shows overlapping work in #1/#5 and #3/#4, branches requiring conflict resolution, and clean PRs at very different readiness levels. Pinging each PR independently would add noise; the queue would benefit more from ongoing stewardship.
At OSS Singularity we maintain PDrive, which exercises these paths in long-running Linux VFS workloads while keeping fixes separated into focused upstream contributions. We are willing to provide first-pass review and reproduction, dependency and overlap mapping across Proton-API-Bridge and go-proton-api, contributor coordination, rebases, CI upkeep, and concise merge recommendations following rclone’s conventions and Proton’s published guidance.
@ncw, if this would help, we would be glad to take ongoing maintainer responsibility for Proton-API-Bridge, initially with rclone retaining final review and merge decisions. Would you prefer the triage queue to live in this thread or in a dedicated Dev Discussions topic? If there is another contribution path you prefer, we are happy to follow it.