python config_error ai_generated true

TypeError: CORSMiddleware.__init__() got an unexpected keyword argument 'allow_origins'

ID: python/starlette-cors-middleware-error

Also available as: JSON · Markdown · 中文
80%Fix Rate
85%Confidence
0Evidence
2025-09-05First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.x active

Root Cause

The CORSMiddleware in Starlette uses 'allow_origins' but older versions use 'origins'.

generic

中文

Starlette中的CORSMiddleware使用'allow_origins',但旧版本使用'origins'。

Workarounds

  1. 90% success Check the Starlette version and use the correct parameter name.
    from starlette.middleware.cors import CORSMiddleware
    app.add_middleware(CORSMiddleware, allow_origins=['*'])  # For newer versions
  2. 85% success Use 'origins' parameter for older Starlette versions.
    app.add_middleware(CORSMiddleware, origins=['*'])

Dead Ends

Common approaches that don't work:

  1. Using both 'origins' and 'allow_origins' together. 70% fail

    Only one parameter is accepted; using both causes error.

  2. Upgrading starlette but not updating the code. 60% fail

    Newer versions may have changed the parameter name.