{"record":{"id":"57ac54523534e19c","repo":"cube-js/cube","slug":"unknown-cache-driver-options-cacheandqueuedrive","errorCode":null,"errorMessage":"Unknown cache driver: ${options.cacheAndQueueDriver}","messagePattern":"Unknown cache driver: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/cubejs-query-orchestrator/src/orchestrator/QueryCache.ts","lineNumber":227,"sourceCode":"    protected readonly driverFactory: DriverFactoryByDataSource,\n    protected readonly logger: LoggerFn,\n    public readonly options: QueryCacheOptions\n  ) {\n    switch (options.cacheAndQueueDriver || 'memory') {\n      case 'memory':\n        this.cacheDriver = new LocalCacheDriver();\n        break;\n      case 'cubestore':\n        if (!options.cubeStoreDriverFactory) {\n          throw new Error('cubeStoreDriverFactory is a required option for Cube Store cache driver');\n        }\n\n        this.cacheDriver = new CubeStoreCacheDriver(\n          options.cubeStoreDriverFactory\n        );\n        break;\n      default:\n        throw new Error(`Unknown cache driver: ${options.cacheAndQueueDriver}`);\n    }\n\n    this.memoryCache = new LRUCache<string, CacheEntry>({\n      max: options.maxInMemoryCacheEntries || 10000\n    });\n    this.localRefreshKeyEnabled = options.localRefreshKey ?? false;\n  }\n\n  /**\n   * Whether interval based refresh keys are answered from this instance clock instead of being\n   * run as queries and cached.\n   */\n  public isLocalRefreshKeyActive(): boolean {\n    return this.localRefreshKeyEnabled && !this.options.refreshKeyRenewalThreshold;\n  }\n\n  public localRefreshKeyResult(queryOptions?: QueryOptions): [{ refresh_key: string }] | null {\n    if (!this.localRefreshKeyEnabled || !isValidLocalRefreshKey(queryOptions?.localRefreshKey)) {","sourceCodeStart":209,"sourceCodeEnd":245,"githubUrl":"https://github.com/cube-js/cube/blob/7d981676b36392fec34088b9afab6bdcad40207c/packages/cubejs-query-orchestrator/src/orchestrator/QueryCache.ts#L209-L245","documentation":"The default branch of the same switch in QueryCache's constructor: the configured cacheAndQueueDriver value is not one of the supported drivers ('memory' or 'cubestore'). This is a fail-fast config validation for misspelled or unsupported cache driver names in QueryCacheOptions (often from CUBEJS_CACHE_AND_QUEUE_DRIVER or orchestrator options). The input at fault is an unrecognized options.cacheAndQueueDriver string.","triggerScenarios":"Thrown at packages/cubejs-query-orchestrator/src/orchestrator/QueryCache.ts:227 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set cacheAndQueueDriver (CUBEJS_CACHE_AND_QUEUE_DRIVER) to one of the supported values: 'memory' or 'cubestore'","Remove the typo/legacy value from the environment or orchestrator options","If a custom cache driver is needed, extend the switch in QueryCache's constructor rather than passing an unknown identifier"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7d981676b36392fec34088b9afab6bdcad40207c","analyzedAt":"2026-09-02T03:45:10.400Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}