aio-libs/aiohttp · error · RuntimeError

.url_for() is not allowed for SystemRoute

Error message

.url_for() is not allowed for SystemRoute

What it means

Error ".url_for() is not allowed for SystemRoute" thrown in aio-libs/aiohttp.

Source

Thrown at aiohttp/web_urldispatcher.py:893

        return self._resource.name

    def url_for(self, *args: str, **kwargs: str) -> URL:
        """Construct url for route with additional params."""
        assert self._resource is not None
        return self._resource.url_for(*args, **kwargs)

    def get_info(self) -> _InfoDict:
        assert self._resource is not None
        return self._resource.get_info()


class SystemRoute(AbstractRoute):
    def __init__(self, http_exception: HTTPException) -> None:
        super().__init__(hdrs.METH_ANY, self._handle)
        self._http_exception = http_exception

    def url_for(self, *args: str, **kwargs: str) -> URL:
        raise RuntimeError(".url_for() is not allowed for SystemRoute")

    @property
    def name(self) -> str | None:
        return None

    def get_info(self) -> _InfoDict:
        return {"http_exception": self._http_exception}

    async def _handle(self, request: Request) -> StreamResponse:
        raise self._http_exception

    @property
    def status(self) -> int:
        return self._http_exception.status

    @property
    def reason(self) -> str:
        return self._http_exception.reason

View on GitHub (pinned to c0ef574e29)

When it happens

Trigger: Thrown at aiohttp/web_urldispatcher.py:893 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of aio-libs/aiohttp@c0ef574e29 (2026-08-04). Data as JSON: /data/errors/bb322fb50fad465b.json. Report an issue: GitHub.