[object Object]

← back to Zuber Internal

Fix zuber viewer 401 crash: plain-ASCII WWW-Authenticate realm

afe7565ef5ebe51b278982797d6c9c5e29dc4a22 · 2026-07-09 09:50:56 -0700 · Steve

Realm string ('Zuber - Designer Wallcoverings (internal)') was triggering
Node ERR_INVALID_CHAR on every 401, crash-looping the viewer. Replaced with
res.setHeader('WWW-Authenticate', 'Basic realm="Zuber Internal"'). Verified
401 clean + 200 with auth + restart count stops climbing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit afe7565ef5ebe51b278982797d6c9c5e29dc4a22
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Jul 9 09:50:56 2026 -0700

    Fix zuber viewer 401 crash: plain-ASCII WWW-Authenticate realm
    
    Realm string ('Zuber - Designer Wallcoverings (internal)') was triggering
    Node ERR_INVALID_CHAR on every 401, crash-looping the viewer. Replaced with
    res.setHeader('WWW-Authenticate', 'Basic realm="Zuber Internal"'). Verified
    401 clean + 200 with auth + restart count stops climbing.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 server.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server.js b/server.js
index 79275e0..646ccc4 100644
--- a/server.js
+++ b/server.js
@@ -24,7 +24,7 @@ app.use((req, res, next) => {
     const [u, p] = Buffer.from(b64, 'base64').toString('utf8').split(':');
     if (u === AUTH_USER && p === AUTH_PASS) return next();
   }
-  res.set('WWW-Authenticate', 'Basic realm="Zuber - Designer Wallcoverings (internal)"');
+  res.setHeader('WWW-Authenticate', 'Basic realm="Zuber Internal"');
   return res.status(401).send('Authentication required.');
 });
 

← eb397ec Zuber internal line viewer (basic-auth, reads zuber_catalog,  ·  back to Zuber Internal  ·  Add color context+Color sort, tag facet (needs-curation), st 2d17e2a →