Skip to content

Conversation

@ardatan
Copy link
Member

@ardatan ardatan commented Jul 22, 2025

Copilot AI review requested due to automatic review settings July 22, 2025 12:46
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes an issue in the HTTP executor where a shared AbortController causes "Cannot perform I/O on behalf of a different request" errors in Cloudflare Workers environments. The fix conditionally creates the AbortController based on the runtime environment and handles the case where it may be undefined.

Key changes:

  • Conditionally create AbortController to avoid Cloudflare Workers compatibility issues
  • Add null-safe checks for disposeCtrl throughout the affected code paths
  • Handle empty signals array when creating the combined abort signal

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
packages/executors/http/src/index.ts Implements conditional AbortController creation and adds null-safety checks
.changeset/lovely-coins-dream.md Documents the bug fix for Cloudflare Workers compatibility

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (alpha)

The latest changes of this PR are available as alpha on npm (based on the declared changesets):

Package Version Info
@graphql-tools/batch-delegate 10.0.5-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/batch-execute 10.0.4-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/delegate 11.1.3-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-common 1.0.5-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-graphql-ws 3.1.3-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-http 3.0.7-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/federation 4.2.3-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/fusion-runtime 1.5.1-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/gateway 2.1.17-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/logger 1.0.9-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/nestjs 2.0.22-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/plugin-aws-sigv4 2.0.17-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/plugin-deduplicate-request 2.0.8-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/hmac-upstream-signature 2.0.8-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/plugin-opentelemetry 1.1.3-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/plugin-prometheus 2.1.3-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/router-runtime 1.0.1-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/gateway-runtime 2.3.5-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/stitch 10.1.3-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/stitching-directives 4.0.5-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-hive/gateway-testing 2.0.5-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/transport-common 1.0.12-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/transport-http 1.0.12-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/transport-http-callback 1.0.12-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-mesh/transport-ws 2.0.12-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎
@graphql-tools/wrap 11.0.5-alpha-5b67375ca958b3783f916540e762f1b25ba53856 npm ↗︎ unpkg ↗︎

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Binary for Linux-ARM64)

The latest changes of this PR are available for download (based on the declared changesets).

Download

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Binary for Linux-X64)

The latest changes of this PR are available for download (based on the declared changesets).

Download

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Binary for macOS-X64)

The latest changes of this PR are available for download (based on the declared changesets).

Download

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Binary for macOS-ARM64)

The latest changes of this PR are available for download (based on the declared changesets).

Download

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Binary for Windows-X64)

The latest changes of this PR are available for download (based on the declared changesets).

Download

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Bun Docker Image)

The latest changes of this PR are available as image on GitHub Container Registry (based on the declared changesets):

ghcr.io/graphql-hive/gateway:2.1.17-alpha-5b67375ca958b3783f916540e762f1b25ba53856-bun

@theguild-bot
Copy link
Collaborator

theguild-bot commented Jul 22, 2025

🚀 Snapshot Release (Node Docker Image)

The latest changes of this PR are available as image on GitHub Container Registry (based on the declared changesets):

ghcr.io/graphql-hive/gateway:2.1.17-alpha-5b67375ca958b3783f916540e762f1b25ba53856

Copy link
Member

@enisdenjo enisdenjo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's wait for the user to test and merge then.

@ardatan ardatan force-pushed the avoid-shared-ctrl-incf branch 2 times, most recently from 01fe358 to 207e397 Compare November 13, 2025 01:41
@ardatan ardatan force-pushed the avoid-shared-ctrl-incf branch from 207e397 to 5b67375 Compare November 13, 2025 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Updating @graphql-mesh/graphql from 0.98.5 to 0.104.6 causing CloudFlare workers I/O error

3 participants