relayPublisher (relay.ts:236) documents itself as "a failed POST is reported via onError but never interrupts the run". It only does the second half: the fetch result is discarded, so only a thrown fetch reaches onError. Every error status resolves and is dropped.
Probed against a real relay:
| scenario |
onError fires? |
| 413, event over the 256KiB cap |
no |
--share https://example.com (not a relay) |
no |
| connection refused (control) |
yes |
So --share https://example.com prints ◆ shared run: <url> and then silently reports nothing, forever. The relay's own tests already assert it answers 400 and 405, and the publisher ignores all of it.
Fix: check res.ok and pass a non-2xx to onError. Best-effort stays the contract, the run must not fail.
relayPublisher(relay.ts:236) documents itself as "a failed POST is reported viaonErrorbut never interrupts the run". It only does the second half: thefetchresult is discarded, so only a thrown fetch reachesonError. Every error status resolves and is dropped.Probed against a real relay:
--share https://example.com(not a relay)So
--share https://example.comprints◆ shared run: <url>and then silently reports nothing, forever. The relay's own tests already assert it answers 400 and 405, and the publisher ignores all of it.Fix: check
res.okand pass a non-2xx toonError. Best-effort stays the contract, the run must not fail.