Cannot perform I/O on behalf of a different request

I’m currently developing a website with workers sites. I’ve got two kv namespaces - one which stores the static content (html, css, etc.) and another one which stores the website content. The html head for most pages served by my worker links to two stylesheets also hosted by my worker. for example:

<head>
    ... snip
    <link rel="stylesheet" href="/static/one_style_sheet.css">
    <link rel="stylesheet" href="/static/another_sheet.css">
</head>

When my page loads, I may randomly get a 500 error on either one of the stylesheets. I wasn’t sure why this was happening, so I checked the logs. When the worker got the request to load the stylesheet, it threw the following error.

Error: Cannot perform I/O on behalf of a different request. I/O objects (such as streams, request/response bodies, and others) created in the context of one request handler cannot be accessed from a different request’s handler. This is a limitation of Cloudflare Workers which allows us to improve overall performance.

This error is a bit confusing, and I can’t find any documentation surrounding why it’s thrown and for what exact reason. I’m using a WASM worker; the error is thrown after trying to await a kv get request:

pub async fn asset(name: &str) -> Result<String, String> {
    JsFuture::from(kv::StaticNS::get(name, "text"))
        .await.ok().ok_or("Could not load asset")?
        .as_string().ok_or("Could not convert asset to string".to_owned())
}

Which is roughly equivalent to the following JS code:

async function asset(name) {
    return await StaticNS.get(name, "text");
}

I first thought that this issue was due to rate-limiting, but after checking the documentation, this doesn’t seem to be the issue. If you have any questions, don’t be afraid to ask. Any help is appreciated, thanks!

TL;DR - I randomly get the following error when my website tries to fetch static assets:
Error: Cannot perform I/O on behalf of a different request.