toykity commited on
Commit
4e6481e
·
1 Parent(s): 97330a5

fix: set global undici timeout via NODE_OPTIONS preload for HF Spaces network

Browse files
Files changed (1) hide show
  1. var/docker/start.sh +20 -0
var/docker/start.sh CHANGED
@@ -104,6 +104,26 @@ if (code.includes(oldCatch)) {
104
  "
105
  fi
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  echo "=== Patching complete, starting app ==="
108
 
109
  # Delegate to original entrypoint + CMD (nginx && pnpm run pm2)
 
104
  "
105
  fi
106
 
107
+ # Write a global Node.js preload script to extend undici fetch timeout
108
+ # HF Spaces has intermittent connectivity to external APIs (e.g. Discord)
109
+ # Default undici connect timeout is 10s; we extend to 30s
110
+ mkdir -p /app/patches
111
+ cat > /app/patches/extend-timeout.js << 'PRELOAD'
112
+ try {
113
+ const { Agent, setGlobalDispatcher } = require('undici');
114
+ setGlobalDispatcher(new Agent({
115
+ connect: { timeout: 30_000 },
116
+ headersTimeout: 60_000,
117
+ bodyTimeout: 60_000,
118
+ }));
119
+ console.log('[preload] undici global dispatcher: connect timeout=30s, headers/body timeout=60s');
120
+ } catch (e) {
121
+ console.log('[preload] undici not available, skipping:', e.message);
122
+ }
123
+ PRELOAD
124
+
125
+ echo "NODE_OPTIONS=--require /app/patches/extend-timeout.js" >> /app/.env
126
+
127
  echo "=== Patching complete, starting app ==="
128
 
129
  # Delegate to original entrypoint + CMD (nginx && pnpm run pm2)