{"record":{"id":"4d0886432a982263","repo":"hcengineering/platform","slug":"adapter-not-provided-name","errorCode":null,"errorMessage":"adapter not provided: ${name}","messagePattern":"adapter not provided: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"foundations/server/packages/core/src/dbAdapterManager.ts","lineNumber":205,"sourceCode":"        await o.close()\n      } catch (err: any) {\n        Analytics.handleError(err)\n      }\n    }\n  }\n\n  getAdapterName (domain: Domain): string {\n    const adapterName = this.conf.domains[domain]\n    return adapterName ?? this.conf.defaultAdapter\n  }\n\n  getAdapterByName (name: string): DbAdapter {\n    if (name === this.conf.defaultAdapter) {\n      return this.defaultAdapter\n    }\n    const adapter = this.adapters.get(name) ?? this.defaultAdapter\n    if (adapter === undefined) {\n      throw new Error('adapter not provided: ' + name)\n    }\n\n    return adapter\n  }\n\n  public getAdapter (domain: Domain, requireExists: boolean): DbAdapter {\n    const name = this.conf.domains[domain] ?? '#default'\n    const adapter = this.adapters.get(name) ?? this.defaultAdapter\n    if (adapter === undefined) {\n      throw new Error('adapter not provided: ' + name)\n    }\n\n    const info = this.getDomainInfo(domain)\n\n    if (!info.exists && !requireExists) {\n      return this.emptyAdapter\n    }\n    // If we require it exists, it will be exists","sourceCodeStart":187,"sourceCodeEnd":223,"githubUrl":"https://github.com/hcengineering/platform/blob/63e28dc96483967b2fc21c881b3f1023c1de7718/foundations/server/packages/core/src/dbAdapterManager.ts#L187-L223","documentation":"getAdapterByName resolves a named DbAdapter from the adapter registry. Despite the ?? this.defaultAdapter fallback in the source, if both the named lookup and defaultAdapter are undefined (no adapters configured at all), it throws 'adapter not provided: <name>'.","triggerScenarios":"Calling adapter(name) where name is not in the registry AND the default adapter was never provided to DbAdapterManager (empty or misloaded adapters configuration).","commonSituations":"Server started without any DB adapters registered; plugin/domain code requests an adapter name that was never configured; config file failed to load so the adapters map is empty.","solutions":["Ensure at least one adapter is registered and set as conf.defaultAdapter","Verify the requested adapter name exists in the adapters config","Check that the configuration file loading didn't silently fail, leaving adapters empty"],"exampleFix":"// before\nconnect('myDomain', { name: 'unconfigured-db' })\n// after\n// register the adapter first or use the default\nconnect('myDomain', { name: conf.defaultAdapter })","handlingStrategy":"try-catch","validationCode":"if (!manager.hasAdapter(name) && !manager.hasDefaultAdapter()) {\n  throw new Error(`adapter '${name}' not configured and no default adapter`)\n}","typeGuard":null,"tryCatchPattern":"try {\n  const adapter = manager.getAdapterByName(name)\n} catch (err) {\n  if (err instanceof Error && err.message.startsWith('adapter not provided')) {\n    console.error(`DB adapter '${name}' is not configured; check server config`)\n  } else throw err\n}","preventionTips":["Always configure conf.defaultAdapter as a safety net","Keep adapter names in typed constants instead of raw strings","Validate at boot that every adapter referenced by domains/plugins is registered"],"tags":["database","configuration","adapter"],"backgroundTag":"missing-adapter-configuration","analyzedSha":"63e28dc96483967b2fc21c881b3f1023c1de7718","analyzedAt":"2026-08-29T15:21:27.377Z","schemaVersion":2},"datasetVersion":"2026-08-29T17:17:51.833Z"}