{"record":{"id":"e8008a224a39b259","repo":"ComposioHQ/composio","slug":"no-data-provided","errorCode":null,"errorMessage":"No data provided","messagePattern":"No data provided","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/composio/core/models/_modifiers.py","lineNumber":667,"sourceCode":"                        or toolkit in modifier.toolkits\n                    )\n\n                    if should_apply and modifier.modifier is not None:\n                        result_response = t.cast(AfterExecuteMeta, modifier.modifier)(\n                            tool, toolkit, session_id, result_response\n                        )\n            return result_response\n\n    # For regular modifiers\n    result: ModifierInOut\n    if schema is not None:\n        result = schema\n    elif request is not None:\n        result = request\n    elif response is not None:\n        result = response\n    else:\n        raise ValueError(\"No data provided\")\n\n    for modifier in modifiers:\n        result = modifier.apply(\n            toolkit=toolkit,\n            tool=tool,\n            data=result,\n            modifer_type=type,\n        )\n    return result\n\n\nclass BeforeExecuteMeta(t.Protocol):\n    \"\"\"\n    A modifier that is called before the meta tool is executed in a session context.\n    \"\"\"\n\n    def __call__(\n        self,","sourceCodeStart":649,"sourceCodeEnd":685,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/python/composio/core/models/_modifiers.py#L649-L685","documentation":"Raised by apply_modifier_by_type when none of schema, request, or response is provided. The modifier pipeline needs a data object to transform; with all inputs None there is nothing to apply modifiers to, so the library rejects the call.","triggerScenarios":"Calling the modifier application API directly with all data arguments as None, or framework code that destructures an execution state into schema/request/response and finds none populated (e.g. a tool with neither a schema nor a pending request nor a response).","commonSituations":"Custom orchestration code that conditionally builds request/response objects and passes empty values on error paths; refactors where a variable rename left schema/request/response unset; mocking executions in tests without stubbing any data field.","solutions":["Pass at least one of schema, request, or response to apply_modifier_by_type","If you only meant to validate modifier registration, don't invoke the apply path — registration APIs don't need data","Debug why your execution state has no schema/request/response: usually the tool definition or execution failed earlier and the real error is being swallowed"],"exampleFix":"# before\nresult = apply_modifier_by_type(modifiers, type, toolkit=toolkit, tool=tool, schema=None, request=None, response=None)\n\n# after\nresult = apply_modifier_by_type(modifiers, type, toolkit=toolkit, tool=tool, schema=schema)","handlingStrategy":"validation","validationCode":"if schema is None and request is None and response is None:\n    raise ValueError(\"nothing to modify: pass one of schema/request/response\")\nresult = apply_modifier_by_type(modifiers, type, schema=schema, request=request, response=response, ...)","typeGuard":null,"tryCatchPattern":"try:\n    result = apply_modifier_by_type(...)\nexcept ValueError as e:\n    if \"No data provided\" in str(e):\n        # skip modifier pass; nothing to transform\n        return original\n    raise","preventionTips":["Check that at least one data argument is non-None before calling","Don't call the apply path purely for registration side effects","Log which of schema/request/response is populated when debugging pipelines"],"tags":["python","modifiers","invalid-arguments"],"backgroundTag":"missing-required-parameter","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}