Skip to content

Studio Dev 61997 hosted execution stuck in invalid DB transaction rollback state #1790

Open

Description

@Iniwura

Summary

Studio Dev RPC basic reads are healthy, but hosted GenLayer execution and fee simulation fail consistently with a PostgreSQL/SQLAlchemy transaction rollback error.

Environment

  • Network: Studio Dev
  • Chain ID: 61997 (RPC returned 0xf22d)
  • RPC: https://studio-dev.genlayer.com/api
  • GenLayer CLI: 0.40.0-rc.3
  • genlayer-js: 2.0.0-rc.1
  • Client: viem 2.56.5
  • Existing contract under read-only investigation: 0x33735bbaa9595FBB1b8a9fFCC3A91103911baEdC
  • No transaction was signed or submitted during this report.

Fresh read-only results

These calls returned HTTP 200 / JSON-RPC success:

  • eth_chainId -> 0xf22d
  • eth_blockNumber -> 0x6acea28e (at 2026-10-13T21:32Z)
  • eth_getBalance(0x33735bbaa9595FBB1b8a9fFCC3A91103911baEdC, latest) -> 0x2

Failing methods

  1. gen_call through CLI, reading get_challenge("reprobond-steward-recovery-20261012-a")
  2. Installed SDK estimateTransactionFeesForWrite for a concrete payable write:
    • to: 0x33735bbaa9595FBB1b8a9fFCC3A91103911baEdC
    • method: fund_challenge
    • args: ["reprobond-steward-recovery-20261012-a"]
    • user value: 2 wei
    • transaction hash variant: latest-nonfinal

Both return JSON-RPC error -32603:

Can't reconnect until invalid transaction is rolled back. Please rollback() fully before proceeding (Background on this error at: https://sqlalche.me/e/20/8s2b)

The SDK surfaces InternalRpcError, shortMessage: "An internal error was received.", with the same text in details and cause.

The error reproduced in a fresh CLI process and fresh SDK process, including two bounded retries 10 seconds apart. Raw RPC reads continued to work. No client-side reset, database manipulation, signing, or transaction submission was attempted.

Please inspect and roll back/clear the server-side invalid database transaction for the Studio Dev execution/fee-estimation path, and advise when gen_call and sim_estimateTransactionFees are healthy again.

Activity

  1. Iniwura commented on Oct 14, 2026

    @Iniwura
    Author

    Comparison update (2026-10-14)

    A fresh read-only comparison confirms the failure is hosted Studio Dev execution-path wide, not ReproBond-specific.

    Read-only gen_call matrix

    Using installed CLI 0.40.0-rc.3 against https://studio-dev.genlayer.com/api:

    • Unrelated known-working Driftline deployment 0x1F09DB8338878Ea59FdD55cb801a95234173aDec, verified method get_agreement_count: failed with -32603 and the exact SQLAlchemy rollback text below.
    • ReproBond historical v1 0x8F1CeC7cbf0D651561B5ec11049257e6421efEEc, verified method get_challenge("live-contradiction-20260930-a"): same failure.
    • ReproBond superseded deployment 0x897a7dF67E638506557985FE795Ff2F762f01607, verified method get_challenge("reprobond-steward-20261007-a"): same failure.
    • ReproBond pre-fix deployment 0x33735bbaa9595FBB1b8a9fFCC3A91103911baEdC, verified method get_challenge("reprobond-steward-recovery-20261012-a"): same failure.

    All four independent fresh CLI calls returned:

    Can't reconnect until invalid transaction is rolled back. Please rollback() fully before proceeding (Background on this error at: https://sqlalche.me/e/20/8s2b)

    Fee-estimation comparison

    • genlayer-js 2.0.0-rc.1 estimateTransactionFeesForWrite for the concrete payable ReproBond call still reaches sim_estimateTransactionFees and returns the same -32603 rollback error.
    • The generic deployment-compatible fee-policy path is healthy: CLI genlayer estimate-fees --rpc ... --json and SDK client.estimateTransactionFees({rotations:[3n]}) both return a valid estimate of 100000000000010352 wei with distribution rotations [3], without signing or submitting.
    • Raw sim_getFeeConfig, eth_chainId, eth_blockNumber, eth_getBalance, and nonce reads remain healthy.

    Conclusion: raw reads and generic fee policy are healthy, but hosted gen_call and concrete simulation-derived fee estimation are unavailable globally on Studio Dev. No transaction was signed or submitted. Please inspect/rollback the server-side transaction state for the execution path.

  2. Iniwura commented on Oct 14, 2026

    @Iniwura
    Author

    Studio Next comparison (2026-10-14)

    Read-only comparison was performed against both:

    Both DNS names resolve to the same Cloudflare IPv4 addresses observed from WSL: 104.21.53.84 and 172.67.210.182. Both HTTPS endpoints respond as JSON-RPC POST services.

    Both return chain ID 0xf22d (61997). At the comparison time, latest block numbers were 0x6acf5b38 and 0x6acf5b3c, later 0x6acf5b53 and 0x6acf5b54. At common block 0x6acf5b53, both returned the same zero block hash and zero parent/state/transaction roots; the RPC's block object does not provide a usable cryptographic hash in this environment, so that field cannot independently prove state identity. More useful state identity checks matched exactly:

    • gen_getContractCode for 0x33735bbaa9595FBB1b8a9fFCC3A91103911baEdC: 60017 bytes and SHA-256 ea1b0bcde33e67f3a09c7c934e8471fcba09bda711f65d000d5a8760c21db9a3 on both endpoints.
    • gen_getContractSchema for that address: 15 methods and zero constructor parameters on both endpoints.
    • sim_getFeeConfig returned HTTP 200 with a result on both endpoints.

    Using the installed genlayer-js 2.0.0-rc.1 with the verified existing RPC override pattern { ...studioDevnet, id: 61997, name: "GenLayer Studio Dev", rpcUrls: { default: { http: [RPC_URL] } } }, the identical calls produced identical failures:

    • readContract(get_challenge("reprobond-steward-recovery-20261012-a")) -> -32603 InternalRpcError.
    • estimateTransactionFeesForWrite({ address: 0x337..., functionName: fund_challenge, args: [challenge], value: 2n, transactionHashVariant: latest-nonfinal }) -> -32603 InternalRpcError.

    Exact details on both endpoints: Can't reconnect until invalid transaction is rolled back. Please rollback() fully before proceeding (https://sqlalche.me/e/20/8s2b).

    Conclusion: Studio Next is not an alternate execution path for this incident. It exposes the same hosted backend/service behavior as Studio Dev for consensus calls and concrete fee simulation. No transaction was signed or submitted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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