Description
[REQUIRED] Environment info
14.4.0firebase-tools: 14.4.0
Platform: macOS
[REQUIRED] Test case
Trying to run a transaction with multiple deletes/inserts fails with errror message: cannot commit transaction: pq: unexpected transaction status idle (when running on dataconnect emulator)
[REQUIRED] Steps to reproduce
Create a mutation:
mutation Example($id: String) @auth(level: NO_ACCESS) @transaction {
productTag_deleteMany(where: { productId: { eq: $id }})
product_upsert(data: {
id: $id
name: "Dummy Product"
type: "DIGITAL"
active: true
createdAt: "2025-05-27T10:00:00Z"
updatedAt: "2025-05-27T10:00:00Z"
language: "en"
publicationDate: "2025-06-01"
metadataStatus: "Draft"
})
productCategory_insertMany(data: [
{ productId: $id, categoryCode: "ABC123" }
])
}
It works without the @transaction
[REQUIRED] Expected behavior
Run all the deletes/inserts within a transaction
[REQUIRED] Actual behavior
Fails with error message: cannot commit transaction: pq: unexpected transaction status idle
I0527 07:16:09.343656 76082 prepare.go:118] [operation "Test" attempt 1] preparePlan succeeded
I0527 07:16:09.343690 76082 prepare.go:109] [operation "Test" attempt 1] DBStats beforePrepare: sql.DBStats{MaxOpenConnections:1, OpenConnections:1, InUse:0, Idle:1, WaitCount:0, WaitDuration:0, MaxIdleClosed:0, MaxIdleTimeClosed:0, MaxLifetimeClosed:0}, afterPrepare: sql.DBStats{MaxOpenConnections:1, OpenConnections:1, InUse:0, Idle:1, WaitCount:0, WaitDuration:0, MaxIdleClosed:0, MaxIdleTimeClosed:0, MaxLifetimeClosed:0}
I0527 07:16:09.354744 76082 executor.go:97] [operation "Test" attempt 1] DBStats beforeRun: sql.DBStats{MaxOpenConnections:1, OpenConnections:1, InUse:0, Idle:1, WaitCount:0, WaitDuration:0, MaxIdleClosed:0, MaxIdleTimeClosed:0, MaxLifetimeClosed:0}, afterRun: sql.DBStats{MaxOpenConnections:1, OpenConnections:0, InUse:0, Idle:0, WaitCount:0, WaitDuration:0, MaxIdleClosed:0, MaxIdleTimeClosed:0, MaxLifetimeClosed:0}
W0527 07:16:09.355025 76082 engine.go:174] [/emulator/distribution-platform-service-dev afa1] ExecuteGraphql Test: failed.
Auth: admin
Variables:
{
"id": "c4645212-0c2d-41bb-b867-9f83e442cbb1"
}
Errors: input: cannot commit transaction: pq: unexpected transaction status idle