{"record":{"id":"cc7ab010a2365d07","repo":"googleapis/mcp-toolbox","slug":"unable-to-create-driver-w","errorCode":null,"errorMessage":"unable to create driver: %w","messagePattern":"unable to create driver: %w","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/sources/arcadedb/arcadedb.go","lineNumber":83,"sourceCode":"\tName       string `yaml:\"name\" validate:\"required\"`\n\tType       string `yaml:\"type\" validate:\"required\"`\n\tUri        string `yaml:\"uri\" validate:\"required\"`\n\tUser       string `yaml:\"user\" validate:\"required\"`\n\tPassword   string `yaml:\"password\" validate:\"required\"`\n\tDatabase   string `yaml:\"database\" validate:\"required\"`\n\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 {","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/googleapis/mcp-toolbox/blob/8cc6e09de2ad7b8bffc77751799585a1401a48eb/internal/sources/arcadedb/arcadedb.go#L65-L101","documentation":"The arcadedb source's Initialize wraps any failure from initArcadeDBDriver, which creates the Neo4j/Bolt driver used to talk to ArcadeDB's Cypher endpoint. A failure here means the driver object could not be constructed — typically because the server URI is malformed or the driver factory rejects the configuration — before any network handshake is attempted.","triggerScenarios":"Calling Initialize with an invalid r.Uri (missing scheme, unsupported scheme, unparseable URL), or with values that cause the underlying neo4j driver constructor to return an error.","commonSituations":"Config mistakes: URI like 'localhost:2480' without bolt scheme, 'http://' instead of the bolt-compatible scheme ArcadeDB expects, trailing garbage in the URI, or empty URI.","solutions":["Check the wrapped cause after 'unable to create driver:' for the driver's specific complaint.","Verify the URI scheme and address — ArcadeDB Cypher-over-Bolt URIs must include the correct scheme and host:port (default port 2424 for Bolt).","Confirm the database name, user, and password fields are non-empty and well-formed.","Test reachability of the ArcadeDB server with a raw client before starting the toolbox."],"exampleFix":"// before\nuri: localhost:2424\n// after\nuri: bolt://localhost:2424","handlingStrategy":"validation","validationCode":"u, err := url.Parse(cfg.Uri)\nif err != nil || u.Scheme == \"\" || u.Host == \"\" {\n    return fmt.Errorf(\"invalid ArcadeDB URI: %q\", cfg.Uri)\n}","typeGuard":null,"tryCatchPattern":"driver, err := initArcadeDBDriver(ctx, tracer, uri, user, pass, name)\nif err != nil {\n    return fmt.Errorf(\"check URI scheme/host in config: %w\", err)\n}","preventionTips":["Always include an explicit scheme (bolt://) and host:port in the URI.","Use port 2424 for Bolt, not the HTTP port 2480.","Validate the URI with net/url.Parse before writing it into config.","Keep URI, user, password, and database name in one validated config block."],"tags":["arcadedb","driver","configuration","uri"],"backgroundTag":"driver-initialization-failed","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"}