Index: src/services/ActivityPubService.js
===================================================================
--- src/services/ActivityPubService.js	(revision 75f28976575f764e9a39454c608c2d38d027500e)
+++ src/services/ActivityPubService.js	(revision 59d963f00edfe753497c4c3fb9cad34042ab692b)
@@ -3698,5 +3698,10 @@
   if (hit && Date.now() - hit.at < THREAD_VIEW_TTL_MS) return hit.out;
 
-  const get = (u) => localNoteObject(u, slug) || signedGetJson(slug, u);
+  // De status waarmee de BRON antwoordde op de note zelf. 401/403/404/410 is
+  // een besluit van die server (niet gedeeld, of weg); alles daarbuiten -- ook
+  // een stuk netwerk dat wegviel -- is een storing. De route moet dat verschil
+  // kunnen zeggen, anders wijst de melding naar de verkeerde partij.
+  let sourceStatus = 0;
+  const get = (u) => localNoteObject(u, slug) || signedGetJson(slug, u, (st) => { sourceStatus = st; });
   const note = await get(objectUri);
   const repliesRef = note && note.replies;
@@ -3781,5 +3786,5 @@
   })).sort((a, b) => String(a.published || '').localeCompare(String(b.published || '')));
 
-  const out = { notes, found: !!note };
+  const out = { notes, found: !!note, sourceStatus };
   threadViewCache.set(key, { at: Date.now(), out });
   if (threadViewCache.size > THREAD_VIEW_CACHE_MAX) {
@@ -5001,5 +5006,5 @@
  * (request-target) host date, the set verifyRequest checks.
  */
-async function signedGetJson(slug, url) {
+async function signedGetJson(slug, url, onStatus) {
   try {
     const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, '');
@@ -5014,4 +5019,8 @@
     const sig = `keyId="${me}#main-key",algorithm="rsa-sha256",headers="(request-target) host date",signature="${signature}"`;
     const r = await safeFetch(url, { headers: { Accept: 'application/activity+json', Date: date, Signature: sig } });
+    // De status doorgeven aan wie erom vroeg: null alleen zegt "het lukte
+    // niet", en dat is te weinig om een WEIGERING van een STORING te
+    // onderscheiden. Wie geen callback meegeeft merkt hier niets van.
+    if (typeof onStatus === 'function') onStatus(r.status);
     if (!r.ok) return null;
     const len = Number(r.headers.get('content-length') || 0);
