skills/clickhouse-js-node-troubleshooting/SKILL.md
Troubleshoot and resolve common issues with the ClickHouse Node.js client (@clickhouse/client). Use this skill whenever a user reports errors, unexpected behavior, or configuration questions involving the Node.js client specifically — including socket hang-up errors, Keep-Alive problems, stream handling issues, data type mismatches, read-only user restrictions, proxy/TLS setup problems, or long-running query timeouts. Trigger even when the user hasn't precisely named the issue; vague symptoms like "my inserts keep failing" or "connection drops randomly" in a Node.js context are strong signals to use this skill. Do NOT use for browser/Web client issues.
npx skillsauth add ClickHouse/agent-skills clickhouse-js-node-troubleshootingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reference: https://clickhouse.com/docs/integrations/javascript
⚠️ Node.js runtime only. This skill covers the
@clickhouse/clientpackage running in a Node.js runtime exclusively — including Next.js Node runtime API routes, React Server Components, Server Actions, and standard Node.js processes. Do not apply this skill to browser client components, Web Workers, Next.js Edge runtime, Cloudflare Workers, or any usage of@clickhouse/client-web. For browser/edge environments, the correct package is@clickhouse/client-web.
Identify the user's issue from the list below and read the corresponding reference file for detailed troubleshooting steps.
| Issue | Symptoms | Reference file |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| Socket Hang-Up / ECONNRESET | socket hang up, ECONNRESET, intermittent connection drops, long-running queries timing out | reference/socket-hangup.md |
| Data Type Mismatches | Large integers returned as strings, decimal precision loss, Date/DateTime insertion failures, CANNOT_PARSE_INPUT_ASSERTION_FAILED inserting a UUID into a UInt128 column | reference/data-types.md |
| Read-Only User Errors | Errors when using response compression with readonly=1 users | reference/readonly-users.md |
| Proxy / Pathname URL Confusion | Wrong database selected, requests failing behind a proxy with a path prefix | reference/proxy-pathname.md |
| TLS / Certificate Errors | TLS handshake failures, certificate verification issues, mutual TLS setup | reference/tls.md |
| Compression Not Working | GZIP compression not activating for requests or responses | reference/compression.md |
| Logging Not Showing Anything | No log output, need custom logger integration | reference/logging.md |
| Query Parameters Not Interpolated | Parameterized queries not working, SQL injection concerns | reference/query-params.md |
| FORMAT Clause / SHOW POLICIES Errors | Syntax error from a duplicate FORMAT, or SHOW [ROW] POLICIES failing even with a format provided | reference/query-format-clause.md |
tools
Sets up and manages Postgres using the clickhousectl CLI — runs a local Docker-backed Postgres for development, and creates and operates managed ClickHouse Cloud Postgres services (connections, TLS, runtime config, read replicas, failover, point-in-time restore). Use when the user wants a Postgres or PostgreSQL database for their application, a local Postgres dev environment, psql access, or a managed/production Postgres in ClickHouse Cloud, or mentions moving a local Postgres to production.
tools
Sets up and manages ClickHouse using the clickhousectl CLI — installs and runs a local ClickHouse server for development, and creates managed ClickHouse Cloud services for production (authentication, service creation, schema migration, application connection). Use when the user wants to build an application with ClickHouse, set up a local ClickHouse dev environment, create tables and start querying, deploy ClickHouse to production or ClickHouse Cloud, or migrate from a local setup to the cloud.
tools
Use when a user wants to wire an OpenTelemetry collector into a Managed ClickStack service on ClickHouse Cloud, either by deploying a new local collector (Docker run or Docker Compose) or by configuring their own existing collector, then send rich synthetic telemetry and verify it is visible in ClickStack.
tools
Write idiomatic application code with the ClickHouse Node.js client (`@clickhouse/client`). Use this skill whenever a user is *building* against the Node.js client — configuring the client, pinging, inserting rows in JSON or raw formats, selecting and parsing results, binding query parameters, managing sessions and temporary tables, working with data types or customizing JSON parsing. Do NOT use for browser/Web client code.