{"record":{"id":"467cdef5029da46a","repo":"langflow-ai/langflow","slug":"http-error-status-response-status","errorCode":null,"errorMessage":"HTTP error! status: ${response.status}","messagePattern":"HTTP error! status: (.+?)","errorType":"http","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/frontend/src/controllers/API/index.ts","lineNumber":94,"sourceCode":"  },\n  tags: string[],\n  publicFlow = false,\n): Promise<FlowType> {\n  try {\n    const response = await api.post(`${getBaseUrl()}store/components/`, {\n      name: newFlow.name,\n      data: newFlow.data,\n      description: newFlow.description,\n      is_component: newFlow.is_component,\n      parent: newFlow.parent,\n      tags: tags,\n      private: !publicFlow,\n      status: publicFlow ? \"Public\" : \"Private\",\n      last_tested_version: newFlow.last_tested_version,\n    });\n\n    if (response.status !== 201) {\n      throw new Error(`HTTP error! status: ${response.status}`);\n    }\n    return response?.data;\n  } catch (error) {\n    console.error(error);\n    throw error;\n  }\n}\n\nexport async function getStoreComponents({\n  component_id = null,\n  page = 1,\n  limit = 9999999,\n  is_component = null,\n  sort = \"-count(liked_by)\",\n  tags = [],\n  liked = null,\n  isPrivate = null,\n  search = null,","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/langflow-ai/langflow/blob/976ec789d2886a86de109c044d089d68e96c9a35/src/frontend/src/controllers/API/index.ts#L76-L112","documentation":"Generic 500 raised by the catch-all handler of the project-tools listing endpoint in the project MCP API (mcp_projects.py). Any exception while collecting tools, decrypting auth settings, or constructing AuthSettings bubbles up here and the raw exception text is echoed to the client. Typical causes are malformed/undecryptable auth_settings on the Folder row or Pydantic validation failures in AuthSettings.","triggerScenarios":"GET /api/v1/mcp/projects/{project_id}/tools (or the list-tools route ending at this handler) where: project.auth_settings contains keys not accepted by AuthSettings, decryption of stored secrets fails (changed SECRET_KEY), or the tool-collection coroutine raises.","commonSituations":"Rotating LANGFLOW_SECRET_KEY so previously encrypted oauth_client_secret/api_key values no longer decrypt; upgrading Langflow so AuthSettings gained/renamed fields while old DB rows keep the old shape; a component in the project failing to import during tool discovery.","solutions":["Read the server log: the handler calls logger.aexception with 'Error listing project tools: {e}' — the traceback names the exact field or operation that failed.","Inspect the project row's auth_settings JSON in the DB for stale/unexpected keys; re-save the MCP auth settings from the UI to rewrite them in the current schema.","If decryption fails after a secret-key change, clear the stored auth settings for that project and re-enter credentials.","If AuthSettings validation is the cause, align the masked payload with the current AuthSettings model (only pass fields it defines)."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    tools = await client.list_project_tools(project_id)\nexcept httpx.HTTPStatusError as e:\n    if e.response.status_code == 500:\n        log_server_detail(e.response.json().get(\"detail\"))  # echoes the inner exception\n    raise","preventionTips":["Always re-save MCP auth settings from the UI after upgrading Langflow so the stored schema matches AuthSettings.","Avoid rotating LANGFLOW_SECRET_KEY without a plan for re-encrypting stored secrets.","Surface the 500 detail in bug reports — it contains the underlying exception text."],"tags":["mcp","http-500","auth-settings","pydantic"],"backgroundTag":null,"analyzedSha":"976ec789d2886a86de109c044d089d68e96c9a35","analyzedAt":"2026-08-14T18:23:12.227Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}