{"record":{"id":"107cafc8e7ffe255","repo":"reflex-dev/reflex","slug":"cannot-specify-different-ports-for-frontend-and-ba","errorCode":null,"errorMessage":"Cannot specify different ports for frontend and backend when using --single-port.","messagePattern":"Cannot specify different ports for frontend and backend when using --single-port\\.","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"error","filePath":"reflex/reflex.py","lineNumber":542,"sourceCode":"\n    if frontend_only and backend_only:\n        logger.error(\"Cannot use both --frontend-only and --backend-only options.\")\n        raise SystemExit(1)\n\n    if single_port:\n        if env != constants.Env.PROD:\n            logger.error(\"--single-port can only be used with --env=PROD.\")\n            raise SystemExit(1)\n        if frontend_only or backend_only:\n            logger.error(\n                \"Cannot use --single-port with --frontend-only or --backend-only.\"\n            )\n            raise SystemExit(1)\n        if frontend_port and backend_port and frontend_port != backend_port:\n            logger.error(\n                \"Cannot specify different ports for frontend and backend when using --single-port.\"\n            )\n            raise SystemExit(1)\n\n    config = get_config()\n\n    frontend_port = frontend_port or config.frontend_port\n    backend_port = backend_port or config.backend_port\n    backend_host = backend_host or config.backend_host\n\n    environment.REFLEX_COMPILE_CONTEXT.set(constants.CompileContext.RUN)\n    environment.REFLEX_BACKEND_ONLY.set(backend_only)\n    environment.REFLEX_FRONTEND_ONLY.set(frontend_only)\n\n    running_mode = prerequisites.check_running_mode(frontend_only, backend_only)\n\n    _run(\n        env=constants.Env(env),\n        running_mode=running_mode,\n        frontend_port=frontend_port,\n        backend_port=backend_port,","sourceCodeStart":524,"sourceCodeEnd":560,"githubUrl":"https://github.com/reflex-dev/reflex/blob/45b8ed5ab735f8a56bbb09a42384f030eb0208e7/reflex/reflex.py#L524-L560","documentation":"In single-port mode Reflex serves frontend and backend over one port, so explicitly requesting two different ports is rejected. The check fires only when both --frontend-port and --backend-port are given and their values differ. It runs early in reflex.reflex.run before configuration is applied.","triggerScenarios":"`reflex run --single-port --frontend-port 3000 --backend-port 8000` (ports differ), or rxconfig.py values combined with one CLI port flag that conflicts.","commonSituations":"Existing projects already configured with separate frontend/backend ports (default 3000/8000) being migrated to single-port mode; copied config with explicit ports while adopting --single-port.","solutions":["Pass the same port to both flags, e.g. --frontend-port 8000 --backend-port 8000","Or omit both port flags in single-port mode and let Reflex use the configured/default single port","Set frontend_port = backend_port in rxconfig.py if ports are configured in the file"],"exampleFix":"# before\nreflex run --single-port --frontend-port 3000 --backend-port 8000\n\n# after\nreflex run --single-port --frontend-port 8000 --backend-port 8000","handlingStrategy":"validation","validationCode":"import sys\nargv = sys.argv\nif '--single-port' in argv or '-s' in argv:\n    fp = next((argv[i+1] for i, a in enumerate(argv) if a in ('--frontend-port',) and i+1 < len(argv)), None)\n    bp = next((argv[i+1] for i, a in enumerate(argv) if a in ('--backend-port',) and i+1 < len(argv)), None)\n    if fp and bp and fp != bp:\n        sys.exit('ports must match in single-port mode')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["In rxconfig.py, set frontend_port and backend_port to the same value when targeting single-port deploys","Prefer omitting explicit ports in single-port mode"],"tags":["reflex","cli","ports","single-port","configuration"],"backgroundTag":"port-configuration-conflict","analyzedSha":"45b8ed5ab735f8a56bbb09a42384f030eb0208e7","analyzedAt":"2026-08-28T19:25:27.644Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}