Our @context stays JSON-LD 1.0, and a 500 no longer takes a host out
The proof term added with integrity proofs had a @graph container, which only JSON-LD 1.1 knows: Smithereen's reader refused every document carrying our context with a 500. Those 500s, retried, then put Smithereen's host in quarantine for an hour, and every delivery to it waited. Proofs are canonicalised as JSON (JCS), so the term loses nothing as a plain id; a test keeps every term within 1.0. Only an unreachable host, a timeout or a gateway's 502, 503 or 504 now counts against a host: a 500 is the server failing on that one activity, retried on its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
1 parent
b66f0acf4e
commit
b478049303
5 files changed
+63
-4
No files matched your search
@@ -258,7 +258,11 @@ namespace PrivaPub.Federation.Outbox
|
||||
_logger.LogInformation("Delivery to {Inbox} refused with {Status}", payload.Inbox, status);
|
||||
return JobOutcome.Dead($"{status} {response.ReasonPhrase}");
|
||||
}
|
||||
await _breaker.Failed(job.Host, $"{status}", token);
|
||||
// a gateway's 502, 503 or 504 says the server behind it is down, which counts against the host; any other 5xx
|
||||
// says the server is up and failed on this activity (Smithereen's 500 on a document its JSON-LD reader
|
||||
// refused), retried on its own while the host's other deliveries go on
|
||||
if (status is 502 or 503 or 504)
|
||||
await _breaker.Failed(job.Host, $"{status}", token);
|
||||
return JobOutcome.Retry($"{status} {response.ReasonPhrase}");
|
||||
}
|
||||
catch (BlockedDestinationException ex)
|
||||
|
||||
Reference in new issue
Block a user