Skip to content
Back to skills

2077 Gotchas C0001867

ASecurity

See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [patterns.md](./patterns.md).

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
databasesgoshellsqlapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2077-gotchas_c0001867 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2077 Gotchas C0001867?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2077 Gotchas C0001867
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2077-gotchas-c0001867/badge)](https://www.skillsdirectory.com/skills/tools-only-2077-gotchas-c0001867)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Gotchas

See [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [patterns.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](./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

- [Docs](https://developers.cloudflare.com/hyperdrive/)
- [Getting Started](https://developers.cloudflare.com/hyperdrive/get-started/)
- [Wrangler Reference](https://developers.cloudflare.com/hyperdrive/reference/wrangler-commands/)
- [Supported DBs](https://developers.cloudflare.com/hyperdrive/reference/supported-databases-and-features/)
- [Discord #hyperdrive](https://discord.cloudflare.com)
- [Limit Increase Form](https://forms.gle/ukpeZVLWLnKeixDu7)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.