smartcontractkit / smartcontractkit/chainlink

[NODE] <Suspended Jobs>

Open
#7,289 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Description
I am operating a chainlink node and running custom jobs, which execute properly and return values to chain, but say Suspended as their status even after returning to chain.

Basic Information
[replace this line with basic information about the issue you are experiencing, including but not limited to all relevant logs and any other relevant information, such as if you are using a Docker container to run the node, job specification, oracle contract address, transaction IDs, etc.]

  • Network: Goerli
  • Blockchain Client: Infura v3
  • Go Version: N/A
  • Operating System: macOS Big Sur
  • Commit: 850acc7cfade39c4508afa9d120b0da630a81ef7
  • Hosting Provider: AWS Postgresql
  • Startup Command: docker run -p 6688:6688 -v ~/.chainlink-goerli:/chainlink -it --env-file=.env smartcontract/chainlink:1.7.0-root local n

Environment Variables
[replace this line with the output of the environment variables when running the node in debug mode]

Steps to Reproduce
Make calls to chainlink node using this Job toml:
type = "directrequest"
schemaVersion = 1
name = "validate_full_stack_operator"
externalJobID = "64ba2123-3039-4d38-bad4-02b48eeb6dfa"
maxTaskDuration = "0s"
contractAddress = "0xF1a252307Ff9F3fbB9598c9a181385122948b8Ae"
evmChainID = "5"
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)"]
ds [type="http"
method=POST
url="https://399d-195-250-172-101.eu.ngrok.io/val"
requestData="{\"job_run_id\": $(jobSpec.externalJobID), \"data\": {\"block_num\": $(decode_cbor.block_num),
\"offer_id\": $(decode_cbor.offer_id)}}"
allowUnrestrictedNetworkAccess=true
]
parse [type=jsonparse path="data,success_count" data="$(ds)"]
encode_data [type="ethabiencode" abi="(bytes32 requestId, uint256 _verification)" data="{ \"requestId\":
$(decode_log.requestId), \"_verification\": $(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="0xF1a252307Ff9F3fbB9598c9a181385122948b8Ae" data="$(encode_tx)"]
decode_log -> decode_cbor -> ds -> parse -> encode_data -> encode_tx -> submit_tx
"""

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 supplied directrequest Job TOML and the node launched by the Docker command, then inspect how this job's execution and returned transaction are represented in the node. Reproduce the request on Goerli with the listed commit and collect the missing logs and environment details. Done means a successfully returning job is no longer shown as Suspended, with a test or clear reproduction confirming the status transition.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go, postgresql
Domain
backend, blockchain
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.