WITH failed_transfer AS ( SELECT core.signature, core.slot, core.instruction_path, core.accounts_json FROM kb_sol_ops_processing_ledger AS ledger JOIN kb_sol_core_instructions AS core ON ledger.input_key = core.signature || ':' || core.instruction_path WHERE ledger.stage = 'instruction_decode' AND ledger.status = 'failed' AND ledger.processor_name = 'metadata_metaplex_token_metadata' AND ledger.error_message LIKE 'transfer%' ) SELECT failed.signature, failed.slot, failed.instruction_path, account.ordinality - 1 AS position, account.value ->> 'accountKey' AS account_key, (account.value ->> 'accountIndex')::INTEGER AS account_index, keys.signer, keys.writable FROM failed_transfer AS failed CROSS JOIN LATERAL jsonb_array_elements(failed.accounts_json) WITH ORDINALITY AS account(value, ordinality) LEFT JOIN kb_sol_core_account_keys AS keys ON keys.signature = failed.signature AND keys.account_index = (account.value ->> 'accountIndex')::INTEGER ORDER BY account.ordinality;