{"record":{"id":"44d84dd7286114a1","repo":"googleapis/mcp-toolbox","slug":"unable-to-connect-successfully-w-44d84d","errorCode":null,"errorMessage":"unable to connect successfully: %w","messagePattern":"unable to connect successfully: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/sources/arcadedb/arcadedb.go","lineNumber":89,"sourceCode":"\tHTTPUri    string `yaml:\"httpUri\"`\n\tHTTPScheme string `yaml:\"httpScheme\"`\n\tHTTPPort   int    `yaml:\"httpPort\"`\n}\n\nfunc (r Config) SourceConfigType() string {\n\treturn SourceType\n}\n\nfunc (r Config) Initialize(ctx context.Context, tracer trace.Tracer) (sources.Source, error) {\n\tdriver, err := initArcadeDBDriver(ctx, tracer, r.Uri, r.User, r.Password, r.Name)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to create driver: %w\", err)\n\t}\n\n\terr = driver.VerifyConnectivity(ctx)\n\tif err != nil {\n\t\tdriver.Close(ctx)\n\t\treturn nil, fmt.Errorf(\"unable to connect successfully: %w\", err)\n\t}\n\n\ts := &Source{\n\t\tConfig: r,\n\t\tDriver: driver,\n\t}\n\treturn s, nil\n}\n\nvar _ sources.Source = &Source{}\n\ntype Source struct {\n\tConfig\n\tDriver neo4j.Driver\n}\n\nfunc (s *Source) IsReadOnly() bool {\n\treturn false","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/googleapis/mcp-toolbox/blob/8cc6e09de2ad7b8bffc77751799585a1401a48eb/internal/sources/arcadedb/arcadedb.go#L71-L107","documentation":"After the driver is created, Initialize calls driver.VerifyConnectivity to perform an actual handshake with the ArcadeDB server. This error means the driver exists but the server could not be reached or rejected the connection — network failure, wrong port, server down, or authentication rejected at handshake. The driver is closed before returning the error.","triggerScenarios":"Calling Initialize when the ArcadeDB host/port is unreachable, the server is not listening, TLS is misconfigured, or credentials are rejected during the Bolt handshake.","commonSituations":"ArcadeDB container not started; wrong port (2480 HTTP vs 2424 Bolt); firewall or Docker network isolation; wrong username/password; server behind a proxy that does not speak Bolt.","solutions":["Verify the ArcadeDB server is running and listening on the Bolt port: 'nc -vz <host> 2424'.","Confirm the URI uses the Bolt port (2424), not the HTTP API port (2480).","Check username/password against the ArcadeDB server config and test with another Bolt client.","Inspect network/firewall/Docker networking between the toolbox and the database."],"exampleFix":"// before: HTTP port in a Bolt URI\nuri: bolt://localhost:2480\n// after\nuri: bolt://localhost:2424","handlingStrategy":"try-catch","validationCode":"host, port := \"localhost\", 2424\nconn, err := net.DialTimeout(\"tcp\", net.JoinHostPort(host, port), 3*time.Second)\nif err != nil {\n    return fmt.Errorf(\"ArcadeDB Bolt port unreachable: %w\", err)\n}\nconn.Close()","typeGuard":null,"tryCatchPattern":"if err := driver.VerifyConnectivity(ctx); err != nil {\n    // server down, wrong port, or bad credentials\n    return fmt.Errorf(\"cannot reach ArcadeDB at %s: %w\", uri, err)\n}","preventionTips":["Monitor ArcadeDB server health (TCP check on 2424) before starting dependent services.","Use the correct Bolt port (2424), not the HTTP port (2480).","Verify credentials against the server with a standalone Bolt client.","Check Docker network/firewall rules allow the toolbox host to reach the DB host."],"tags":["arcadedb","connectivity","network","authentication"],"backgroundTag":"connection-refused","analyzedSha":"8cc6e09de2ad7b8bffc77751799585a1401a48eb","analyzedAt":"2026-09-05T01:10:36.887Z","contentChangedAt":"2026-09-05T01:10:36.887Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}