Files
dotfiles/dot_agents/skills/cloudflare/references/hyperdrive/gotchas.md
T
Prad Nukala 6406208b35 shell: fish functions -> ~/.local/bin executables + bash/zsh ports; manage ~/.agents
- 16 cross-shell utilities converted to sh/bash chezmoi executables:
  ai c2p cp-appid extract_agents fab gdc gh-sonr-org-migrate ghg-clone
  ghn gho git-summary launch_omp_livediff_overlay lc-elir mdcp mdp pj
  (ghg-clone not named ghg: unrelated cargo binary owns that name)
- cwd/history helpers stay per-shell: yy c cd clip-last + ghg/ghn/gho
  cd-wrappers in bash/functions/ and zsh/functions/, loaded by rc files
- fish keeps only shell-state functions; converted ones now hit PATH
- cp-appid ignore gating moved to .local/bin path
- dot_agents/skills: 82 skills materialized from dotstate storage so
  dot_claude skill symlinks resolve on fresh bootstrap; dotstate
  profile/symlinks.json released .agents/skills .bashrc .zshrc
2026-08-10 15:15:06 -04:00

3.8 KiB

Gotchas

See README.md, configuration.md, api.md, patterns.md.

Common Errors

"Too many open connections" / "Connection limit exceeded"

Cause: Workers have a hard limit of 6 concurrent connections per invocation
Solution: Set max: 5 in driver config, reuse connections, ensure proper cleanup with client.end() or ctx.waitUntil(conn.end())

"Failed to acquire a connection (Pool exhausted)"

Cause: All connections in pool are in use, often due to long-running transactions
Solution: Reduce transaction duration, avoid queries >60s, don't hold connections during external calls, or upgrade to paid plan for more connections

"connection_refused"

Cause: Database refusing connections due to firewall, connection limits, or service down
Solution: Check firewall allows Cloudflare IPs, verify DB listening on port, confirm service running, and validate credentials

"Query timeout (deadline exceeded)"

Cause: Query execution exceeding 60s timeout limit
Solution: Optimize with indexes, reduce dataset with LIMIT, break into smaller queries, or use async processing

"password authentication failed"

Cause: Invalid credentials in Hyperdrive configuration
Solution: Check username and password in Hyperdrive config match database credentials

"SSL/TLS connection error"

Cause: SSL/TLS configuration mismatch between Hyperdrive and database
Solution: Add sslmode=require (Postgres) or sslMode=REQUIRED (MySQL), upload CA cert if self-signed, verify DB has SSL enabled, and check cert expiry

"Queries not being cached"

Cause: Query is mutating (INSERT/UPDATE/DELETE), contains volatile functions (NOW(), RANDOM()), or caching disabled
Solution: Verify query is non-mutating SELECT, avoid volatile functions, confirm caching enabled, use wrangler dev --remote to test, and set prepare=true for postgres.js

"Slow multi-query Workers despite Hyperdrive"

Cause: Worker executing at edge, each query round-trips to DB region
Solution: Enable Smart Placement ("placement": {"mode": "smart"} in wrangler.jsonc) to execute Worker near DB. See patterns.md Multi-Query pattern.

"Local database connection failed"

Cause: localConnectionString incorrect or database not running
Solution: Verify localConnectionString correct, check DB running, confirm env var name matches binding, and test with psql/mysql client

"Environment variable not working"

Cause: Environment variable format incorrect or not exported
Solution: Use format CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING>, ensure binding matches wrangler.jsonc, export variable in shell, and restart wrangler dev

Limits

Limit Free Paid Notes
Max configs 10 25 Hyperdrive configurations per account
Worker connections 6 6 Max concurrent connections per Worker invocation
Username/DB name 63 bytes 63 bytes Maximum length
Connection timeout 15s 15s Time to establish connection
Idle timeout 10 min 10 min Connection idle timeout
Max origin connections ~20 ~100 Connections to origin database
Query duration max 60s 60s Queries >60s terminated
Cached response max 50 MB 50 MB Responses >50MB returned but not cached

Resources