{"record":{"id":"fc5e380cc8acd0d0","repo":"multica-ai/multica","slug":"wecom-install-rejected","errorCode":"wecom_install_rejected","errorMessage":"wecom: invalid installation parameters","messagePattern":"wecom: invalid installation parameters","errorType":"exception","errorClass":null,"httpStatus":400,"severity":"error","filePath":"server/internal/integrations/wecom/installation.go","lineNumber":461,"sourceCode":"\t})\n\tif err != nil {\n\t\tif errors.Is(err, pgx.ErrNoRows) {\n\t\t\treturn Installation{}, ErrInstallationNotFound\n\t\t}\n\t\treturn Installation{}, err\n\t}\n\treturn installationFromRow(row)\n}\n\n// ErrInvalidInstallationParams marks a request the caller can fix by filling\n// something in, as opposed to a failure of ours. It exists so the HTTP layer\n// can tell them apart: a missing field is the caller's 400, ErrCredentialsRejected\n// and ErrCredentialsUnverifiable carry the two outcomes of actually asking WeCom\n// (400 and 503), and everything left over is a 500 — because telling an admin\n// their credentials are wrong when Postgres briefly went away sends them to\n// rotate a secret that was fine, and a WeCom secret, once rotated, cannot be\n// recovered. writeWecomInstallError holds the full matrix.\nvar ErrInvalidInstallationParams = errors.New(\"wecom: invalid installation parameters\")\n\n// validateInstallationParams is a lightweight pre-write check for\n// required fields. It does NOT verify anything against WeCom.\nfunc validateInstallationParams(p InstallationParams) error {\n\tmissing := \"\"\n\tswitch {\n\tcase !p.WorkspaceID.Valid:\n\t\tmissing = \"workspace_id\"\n\tcase !p.AgentID.Valid:\n\t\tmissing = \"agent_id\"\n\tcase !p.InstallerUserID.Valid:\n\t\tmissing = \"installer_user_id\"\n\tcase p.BotID == \"\":\n\t\tmissing = \"bot_id\"\n\tcase p.Secret == \"\":\n\t\tmissing = \"secret\"\n\tdefault:\n\t\treturn nil","sourceCodeStart":443,"sourceCodeEnd":479,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/internal/integrations/wecom/installation.go#L443-L479","documentation":"Error \"wecom: invalid installation parameters\" thrown in multica-ai/multica.","triggerScenarios":"Thrown at server/internal/integrations/wecom/installation.go:461 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the installation parameters (corp id, bot id, secret) and retry."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}