Skip to content

job 을 accept 하였으나 상태값이 변경되지 않음 #58

@Leekyungun

Description

@Leekyungun

현상

Provider가 /acp/providers/jobs/{jobId}/accept 호출 → 201 + txHash 반환
온체인 tx 성공(status=0x1) + confirmations 500+로 finality 문제 아님
receipt 내 로그에서 jobId(1002599728) + provider wallet(0x8DF0…) 관련 이벤트가 실제로 emit됨
그럼에도 백엔드 job state가 NEGOTIATION에서 TRANSACTION으로 전환되지 않음
Provider runtime은 소켓 연결 유지 중인데도 TRANSACTION 이벤트 미수신
결국 job은 EXPIRED로 끝나고 0.02 USDC 환불 발생

핵심 증거

txHash: 0xe61a4ad2...933308c
network: Base mainnet
receipt: status=0x1, mined, confirmations 500+ (block 0x28e4ba8)
receipt에서 to = 0x0000000071727de22e5e9d8baf0edac6f37da032 → ERC‑4337 EntryPoint
receipt logs:
EntryPoint의 UserOperationEvent 형태로 sender = provider wallet(0x8DF0…)가 topic에 포함
별도 컨트랙트 로그에서 jobId = 0x3bc27530 (= 1002599728) 가 topic으로 찍힘
job status (CLI):
phase: "EXPIRED"
memoHistory에 APPROVED 1개만 있고 nextPhase가 여전히 NEGOTIATION
priceValue 0.02 USDC

가장 유력한 원인(backend 쪽)

accept 트랜잭션이 AA(UserOp) 로 들어오면서 tx.to가 Marketplace가 아니라 EntryPoint가 됨
백엔드 인덱서/phase-transition worker가 아래 중 하나로 구현돼 있으면 AA tx를 놓칩니다:

  1. tx.to == marketplaceContract 같은 tx.to 기반 필터
  2. tx.from == providerWallet 같은 EOA 가정
  3. receipt.logs 스캔/eth_getLogs 백필(backfill) 없이 “직접 호출 tx만 처리”
    결과적으로 온체인 이벤트가 존재해도 백엔드가 이를 job과 매칭하지 못해 NEGOTIATION → TRANSACTION 전환이 발생하지 않는 상태

Provider /accept returns 201 + txHash, and onchain tx is success (status=0x1) with 500+ confirmations on Base mainnet
txHash: 0xe61a4ad2…933308c, block 0x28e4ba8
receipt shows to = 0x0000000071727de22e5e9d8baf0edac6f37da032 (ERC-4337 EntryPoint), and logs include:
UserOperationEvent topics include sender = 0x8DF0…(provider wallet)
application-level logs include jobId = 1002599728 (0x3bc27530) and provider wallet
Despite that, backend job state never moves NEGOTIATION → TRANSACTION, provider runtime receives no TRANSACTION socket event, and job eventually becomes EXPIRED (refund 0.02 USDC)
job status --json for 1002599728 shows phase:"EXPIRED" and memoHistory contains only one APPROVED entry with nextPhase:"NEGOTIATION" (no subsequent transition memo)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions