smartcontractkit / smartcontractkit/chainlink

Bridge task throws an error HTTP request timed out or interrupted

Open
#8,771 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
8.2k
Forks
2k
Avg merge
1d 23h
Merged PRs (30d)
202

Description

Description
[Bridge task throws an error HTTP request timed out or interrupted

Basic Information
The Bridge task throws the error whenever the external adapter takes too long for a response

  • Network: [sepolia]
  • Operating System: [Windows 11]
  • Hosting Provider: [self-hosted]
  • Startup Command: [docker compose up]

Steps to Reproduce
Run your own chainlink node and create a job with fetch [type=bridge name=<your bridge name>] in your toml file. If the external adapter is taking too long for a response, let's say 15 sec, error will be reproduced.

Additional Information
Here is my toml file for job Id --
type = "directrequest" schemaVersion = 1 name = "player-bridge" maxTaskDuration = "0s" contractAddress = "0x2b6aC48A4e87F2683A0b537E2F1D47e9A864d63d" minContractPaymentLinkJuels = "0" observationSource = """ decode_log [type=ethabidecodelog abi="OracleRequest(bytes32 indexed specId, address requester, bytes32 requestId, uint256 payment, address callbackAddr, bytes4 callbackFunctionId, uint256 cancelExpiration, uint256 dataVersion, bytes data)" data="$(jobRun.logData)" topics="$(jobRun.logTopics)"] decode_cbor [type=cborparse data="$(decode_log.data)"] fetch [type=bridge name="ea-id-bridge"] parse [type=jsonparse path="data" data="$(fetch)"] encode_data [type=ethabiencode abi="(bytes32 requestId,bytes _score)" data="{\\"requestId\\": $(decode_log.requestId),\\"_score\\": $(parse) }"] encode_tx [type=ethabiencode abi="fulfillOracleRequest2(bytes32 requestId, uint256 payment, address callbackAddress, bytes4 callbackFunctionId, uint256 expiration, bytes calldata data)" data="{\\"requestId\\": $(decode_log.requestId), \\"payment\\": $(decode_log.payment), \\"callbackAddress\\": $(decode_log.callbackAddr), \\"callbackFunctionId\\": $(decode_log.callbackFunctionId), \\"expiration\\": $(decode_log.cancelExpiration), \\"data\\": $(encode_data)}"] submit_tx [type=ethtx to="0x2b6aC48A4e87F2683A0b537E2F1D47e9A864d63d" data="$(encode_tx)"] decode_log -> decode_cbor -> fetch -> parse -> encode_data -> encode_tx -> submit_tx """
Note: This job works perfectly if the response comes immediately.

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 with the Bridge task and its external-adapter request path, then reproduce the failure using the supplied job TOML and an adapter delayed by about 15 seconds. Trace how the timeout or interruption is handled and define completion as consistent behavior for delayed responses without the reported error.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.