nuxt / nuxt/icon

Workerd incompatibility (Cloudflare Workers)

Open
#142 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.2k
Forks
96
Avg merge
8h 12m
Merged PRs (30d)
2

Description

Hello!

I've been after these errors for months now.

The script will never generate a response

✘ [ERROR] Uncaught (in response) Error: Promise will never complete.

✘ [ERROR] Uncaught (in promise) 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.

These pop up in our production log many times daily, we had more than 1800 errors in the last 7 days like this:

image

Finally I was able to reproduce it consistently locally by instantly spamming the freshly started worker with the same SSR page request. (20 request for the same page), but unfortunately the error log contains nothing more than those messages.

After I wrapped all the <Icon> in a custom MyIcon.client.vue component the issue was gone.

I think the problem will be upstream in Iconify but I haven't started to investigate more deeply yet.

More info:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with 20 concurrent SSR requests against a freshly started Cloudflare Workers deployment, comparing direct usage with the MyIcon.client.vue wrapper. Review the linked workerd issue and the suspected Iconify involvement; no project file or test is named, so completion would require identifying a reproducible project-level cause and a verified resolution.

Written by the indexing model from the issue text.

Assessment

Tech stack
nuxt, typescript
Domain
backend, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.