{"record":{"id":"65ec7eac303b5d25","repo":"CherryHQ/cherry-studio","slug":"one-or-more-vertex-ai-publisher-requests-failed","errorCode":null,"errorMessage":"One or more Vertex AI publisher requests failed","messagePattern":"One or more Vertex AI publisher requests failed","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/main/ai/provider/listModels.ts","lineNumber":290,"sourceCode":"          }\n          logger.warn('Skipping Vertex publisher model listing after request failure', {\n            providerId: provider.id,\n            publisher,\n            error: error instanceof Error ? error.message : String(error)\n          })\n          return null\n        }\n      })\n    )\n\n    if (options?.throwOnError && publisherModelGroups.some((g) => g === null)) {\n      if (firstPublisherError instanceof Error) {\n        throw firstPublisherError\n      }\n      if (firstPublisherError !== undefined) {\n        throw new Error(String(firstPublisherError))\n      }\n      throw new Error('One or more Vertex AI publisher requests failed')\n    }\n\n    const publisherModels = publisherModelGroups.filter((g) => g !== null).flat()\n\n    const listedModels = dedup(publisherModels, (model) => model.name).map((model) => {\n      const bareId = getVertexModelId(model.name)\n      const ownedBy = getVertexModelPublisher(model.name)\n      // MaaS models are served over the OpenAI-compatible endpoint, which requires the\n      // `{publisher}/{model}` id form even when Google is the publisher. Native Google\n      // models (Gemini/Gemma/embeddings) keep their bare id.\n      const publisherModelId = `${ownedBy}/${bareId}`\n      const apiModelId = isVertexMaasModelId(publisherModelId) ? publisherModelId : bareId\n      return toModel(apiModelId, provider, {\n        name: pickPreferredString([model.displayName, bareId]) || bareId,\n        description: model.description,\n        ownedBy\n      })\n    })","sourceCodeStart":272,"sourceCodeEnd":308,"githubUrl":"https://github.com/CherryHQ/cherry-studio/blob/726446b54cd69ffe51a276638672f6d95ca0768c/src/main/ai/provider/listModels.ts#L272-L308","documentation":"Error \"One or more Vertex AI publisher requests failed\" thrown in CherryHQ/cherry-studio.","triggerScenarios":"Vertex AI publisher model listing runs with throwOnError, at least one publisher request failed, and no underlying error object was captured to rethrow.","commonSituations":"A generic fallback when some publisher listing requests returned null (failed) but firstPublisherError was never set. Signals partial Vertex listing failure to callers that requested strict error propagation.","solutions":["Review the per-publisher errors attached to this failure to find which publisher requests failed.","Confirm the service account has aiplatform.models.list and the Vertex AI API is enabled in the project.","Retry; transient failures across publishers often succeed on a second attempt."],"exampleFix":"Enable the Vertex AI API: gcloud services enable aiplatform.googleapis.com --project=<project-id>, then retry listing models.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"726446b54cd69ffe51a276638672f6d95ca0768c","analyzedAt":"2026-08-12T17:30:37.448Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}