{"record":{"id":"b9760fe3145dee0d","repo":"datahaven-xyz/datahaven","slug":"callfiltered","errorCode":null,"errorMessage":"CallFiltered","messagePattern":"CallFiltered","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"operator/precompiles/proxy/src/lib.rs","lineNumber":396,"sourceCode":"        let who = Runtime::AddressMapping::into_account_id(handle.context().caller);\n        // Proxies:\n        // Twox64Concat(8) + AccountId(20) + BoundedVec(ProxyDefinition * MaxProxies) + Balance(16)\n        handle.record_db_read::<Runtime>(\n            28 + (29 * (<Runtime as pallet_proxy::Config>::MaxProxies::get() as usize)) + 16,\n        )?;\n        let def =\n            pallet_proxy::Pallet::<Runtime>::find_proxy(&real_account_id, &who, force_proxy_type)\n                .map_err(|_| RevertReason::custom(\"Not proxy\"))?;\n        frame_support::ensure!(def.delay.is_zero(), revert(\"Unannounced\"));\n\n        // Read subcall recipient code\n        // AccountCodesMetadata: 16 (hash) + 20 (key) + 40 (CodeMetadata).\n        handle.record_db_read::<Runtime>(ACCOUNT_CODES_METADATA_PROOF_SIZE.saturated_into())?;\n        let recipient_has_code =\n            pallet_evm::AccountCodesMetadata::<Runtime>::get(evm_subcall.to.0).is_some();\n\n        // Apply proxy type filter\n        frame_support::ensure!(\n            def.proxy_type.is_evm_proxy_call_allowed(\n                &evm_subcall,\n                recipient_has_code,\n                handle.remaining_gas()\n            )?,\n            revert(\"CallFiltered\")\n        );\n\n        let EvmSubCall {\n            to,\n            value,\n            call_data,\n        } = evm_subcall;\n        let address = to.0;\n\n        let sub_context = Context {\n            caller: real.0,\n            address: address.clone(),","sourceCodeStart":378,"sourceCodeEnd":414,"githubUrl":"https://github.com/datahaven-xyz/datahaven/blob/edcb13dbbcd3c29489eaa2480a6f60ee4cb1f3ec/operator/precompiles/proxy/src/lib.rs#L378-L414","documentation":"Reverts the proxy precompile call because the requested proxied dispatch is disallowed by a filter: the proxy definition found for the real account restricts which calls the delegate may perform (or the runtime's call filter rejects the target), so this particular call through the proxy relationship is blocked. The inputs at fault are the target call and/or the force_proxy_type supplied by the caller.","triggerScenarios":"Thrown at operator/precompiles/proxy/src/lib.rs:396 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a proxy type whose filter permits the intended call, or have the real account grant a proxy definition with broader permissions","Invoke the call directly from the real account instead of through the proxy if the proxy type cannot authorize it","Check the proxy type's ProxyType::is_superset filter configuration before delegating to ensure it covers the desired dispatches"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"edcb13dbbcd3c29489eaa2480a6f60ee4cb1f3ec","analyzedAt":"2026-09-13T19:19:32.206Z","contentChangedAt":"2026-09-13T19:19:32.206Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}