From 788e0769aafdf815f78527277a7e20f1be32054a Mon Sep 17 00:00:00 2001 From: brooks Date: Thu, 21 May 2026 08:44:45 -0400 Subject: [PATCH 1/3] Add FILTER_TRANSACTION_NOT_FOUND error --- packages/errors/src/__tests__/json-rpc-error-test.ts | 2 ++ packages/errors/src/codes.ts | 2 ++ packages/errors/src/messages.ts | 2 ++ 3 files changed, 6 insertions(+) diff --git a/packages/errors/src/__tests__/json-rpc-error-test.ts b/packages/errors/src/__tests__/json-rpc-error-test.ts index 1b8e8fe04..07891298f 100644 --- a/packages/errors/src/__tests__/json-rpc-error-test.ts +++ b/packages/errors/src/__tests__/json-rpc-error-test.ts @@ -9,6 +9,7 @@ import { SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE, + SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE, @@ -91,6 +92,7 @@ describe('getSolanaErrorFromJsonRpcError', () => { SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET, + SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED, diff --git a/packages/errors/src/codes.ts b/packages/errors/src/codes.ts index b2260667d..c7aa654b5 100644 --- a/packages/errors/src/codes.ts +++ b/packages/errors/src/codes.ts @@ -47,6 +47,7 @@ export const SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602; export const SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601; export const SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600; export const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SLOT_HISTORY = -32021; +export const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND = -32020; export const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE = -32019; export const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_NOT_EPOCH_BOUNDARY = -32018; export const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE = -32017; @@ -573,6 +574,7 @@ export type SolanaErrorCode = | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE + | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE diff --git a/packages/errors/src/messages.ts b/packages/errors/src/messages.ts index 341b9aec8..c90845dae 100644 --- a/packages/errors/src/messages.ts +++ b/packages/errors/src/messages.ts @@ -156,6 +156,7 @@ import { SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE, + SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE, @@ -570,6 +571,7 @@ export const SolanaErrorMessages: Readonly<{ [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: '$__serverMessage', [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE]: 'Epoch rewards period still active at slot $slot', + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND]: '$__serverMessage', [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: '$__serverMessage', [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: '$__serverMessage', [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE]: From 4b2ef1d9276d6afba05c2aa7fb9d93b5b00b1365 Mon Sep 17 00:00:00 2001 From: Loris Leiva Date: Thu, 21 May 2026 14:01:02 +0100 Subject: [PATCH 2/3] Add changeset --- .changeset/thick-grapes-chew.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/thick-grapes-chew.md diff --git a/.changeset/thick-grapes-chew.md b/.changeset/thick-grapes-chew.md new file mode 100644 index 000000000..ced8fa6ee --- /dev/null +++ b/.changeset/thick-grapes-chew.md @@ -0,0 +1,5 @@ +--- +"@solana/errors": patch +--- + +Add FILTER_TRANSACTION_NOT_FOUND error From 2ea6a1c81740c6f644a272cdd9c3d4d4db2caad8 Mon Sep 17 00:00:00 2001 From: brooks Date: Thu, 21 May 2026 09:35:36 -0400 Subject: [PATCH 3/3] pr: add context --- packages/errors/src/context.ts | 4 ++++ packages/errors/src/json-rpc-error.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/errors/src/context.ts b/packages/errors/src/context.ts index 67bafec40..5e9275d22 100644 --- a/packages/errors/src/context.ts +++ b/packages/errors/src/context.ts @@ -140,6 +140,7 @@ import { SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE, + SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED, @@ -655,6 +656,9 @@ export type SolanaErrorContext = ReadonlyContextValue< rewardsCompleteBlockHeight: bigint; slot: bigint; }; + [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND]: { + __serverMessage: string; + }; [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: { __serverMessage: string; }; diff --git a/packages/errors/src/json-rpc-error.ts b/packages/errors/src/json-rpc-error.ts index 1be9ae206..15f6cd979 100644 --- a/packages/errors/src/json-rpc-error.ts +++ b/packages/errors/src/json-rpc-error.ts @@ -8,6 +8,7 @@ import { SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET, + SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED, SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, @@ -127,6 +128,7 @@ export function getSolanaErrorFromJsonRpcError(putativeErrorResponse: unknown): case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP: case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE: case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: + case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_FILTER_TRANSACTION_NOT_FOUND: case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED: