Error starting mainnet node via docker

Trying to start node in mainnet fails with strange error.
docker image: ceramicnetwork/js-ceramic:latest
Here is the logs with versions
Some data like infura apikey, ipfs ip, node private seed hidden for security reasons, but they are scpecified

[2024-01-22T17:26:00.427Z] IMPORTANT: Starting Ceramic Daemon with @ceramicnetwork/cli package version 3.2.0, with js-ceramic repo git hash 25336d5daae42b47eace54346d695932b5678a87, and with config: 
  "anchor": {
    "auth-method": "did",
    "ethereum-rpc-url": ""
  "http-api": {
    "cors-allowed-origins": [
    "admin-dids": []
  "ipfs": {
    "mode": "remote",
    "host": "http://ipfs_ip:5001",
    "disable-peer-data-sync": false
  "logger": {
    "log-level": 2,
    "log-to-files": true
  "metrics": {
    "metrics-exporter-enabled": false
  "network": {
    "name": "mainnet"
  "node": {},
  "state-store": {
    "mode": "fs",
    "local-directory": "/root/.ceramic/statestore/"
  "indexing": {
    "db": "sqlite:///root/.ceramic/indexing.sqlite",
    "allow-queries-before-historical-sync": true,
    "disable-composedb": false,
    "enable-historical-sync": false
Ceramic daemon failed to start up:
TypeError: fetch failed
    at Object.fetch (node:internal/deps/undici/undici:11730:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  cause: ConnectTimeoutError: Connect Timeout Error
      at onConnectTimeout (node:internal/deps/undici/undici:6869:28)
      at node:internal/deps/undici/undici:6825:50
      at Immediate._onImmediate (node:internal/deps/undici/undici:6857:13)
      at process.processImmediate (node:internal/timers:478:21) {

Thanks for sharing your issue @jetrix. I’m sure @Radek or @Justina can help you out!

@jetrix what version of Node.js and NPM are you using?

npm 10.1.0
nodejs v20.9.0

@jetrix, I think the issue may be coming from your node config:

“ethereum-rpc-url”: “

I assume you copied this directly out of some of our docs, but that url is meant as a placeholder. You’ll need to replace it with a real URL for a functional ethereum RPC endpoint.

Here i said that ive change here in post, but there are real link to infura rpc on node, so its not the issue

1 Like

I tried reproducing the error using Docker locally, I didn’t get to the same error/issue but a similar one when failing to connect between the Ceramic node and IPFS.
My guess is that there is a similar connectivity issue with your setup, either between the Ceramic node and IPFS, or maybe with another external service like Infura or the CAS?

1 Like

Agree with Paul.

@jetrix are you able to bring up any Docker image that hits the internet? You could use the curl Docker image and try to hit some public endpoint.

1 Like

Looks like you are right, going to ipfs webui shows error that it cant conenct to api. I’ve tried to solve the issue, but dont really find the way. I have tried everythin shows in ipfs docs, and ipfs logs show that everything fine, but for some strange reason i cannot connect to api anyway. Maybe you know what can cause this

I ve changed ipfs config now it works and ceramic node dont give this error.
But now its starting and after sometime gives this err

[2024-01-25T17:55:46.928Z] IMPORTANT: Initializing PostgreSQL connection
[2024-01-25T17:55:47.200Z] IMPORTANT: Node DID set to 'did:key:z6MkrLjw8Gzv9t6uEjxxNWTJAz7NLSSLFeeGvTGh6rzk5K3A. This DID will be used to authenticate to the anchor service'
[2024-01-25T17:55:47.200Z] IMPORTANT: Connecting to ceramic network 'mainnet' using pubsub topic '/ceramic/mainnet'
[2024-01-25T17:56:17.203Z] IMPORTANT: Closing Ceramic instance
Ceramic daemon failed to start up:
[2024-01-25T17:56:17.211Z] IMPORTANT: Ceramic instance closed successfully
KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
    at Client_PG.acquireConnection (/js-ceramic/node_modules/knex/lib/client.js:332:26)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:540:9)
    at process.processTimers (node:internal/timers:514:7)
    at async Runner.ensureConnection (/js-ceramic/node_modules/knex/lib/execution/runner.js:305:28)
    at async (/js-ceramic/node_modules/knex/lib/execution/runner.js:30:19)
    at async PostgresTablesManager.initConfigTable (file:///js-ceramic/packages/indexing/lib/tables-manager.js:54:24)
    at async file:///js-ceramic/packages/indexing/lib/tables-manager.js:50:13
    at async Promise.all (index 0)
    at async PostgresTablesManager.initConfigTables (file:///js-ceramic/packages/indexing/lib/tables-manager.js:49:9) {
  sql: undefined,
  bindings: undefined

You might need to double-check your Postgres configuration. How are you setting up your database?