ComposioHQ/composio · error · ValueError
No data provided
Error message
No data provided
What it means
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.
Source
Thrown at python/composio/core/models/_modifiers.py:667
or toolkit in modifier.toolkits
)
if should_apply and modifier.modifier is not None:
result_response = t.cast(AfterExecuteMeta, modifier.modifier)(
tool, toolkit, session_id, result_response
)
return result_response
# For regular modifiers
result: ModifierInOut
if schema is not None:
result = schema
elif request is not None:
result = request
elif response is not None:
result = response
else:
raise ValueError("No data provided")
for modifier in modifiers:
result = modifier.apply(
toolkit=toolkit,
tool=tool,
data=result,
modifer_type=type,
)
return result
class BeforeExecuteMeta(t.Protocol):
"""
A modifier that is called before the meta tool is executed in a session context.
"""
def __call__(
self,View on GitHub (pinned to 64b1b85502)
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
Example fix
# before result = apply_modifier_by_type(modifiers, type, toolkit=toolkit, tool=tool, schema=None, request=None, response=None) # after result = apply_modifier_by_type(modifiers, type, toolkit=toolkit, tool=tool, schema=schema)
Defensive patterns
Strategy: validation
Validate before calling
if schema is None and request is None and response is None:
raise ValueError("nothing to modify: pass one of schema/request/response")
result = apply_modifier_by_type(modifiers, type, schema=schema, request=request, response=response, ...) Try / catch
try:
result = apply_modifier_by_type(...)
except ValueError as e:
if "No data provided" in str(e):
# skip modifier pass; nothing to transform
return original
raise Prevention
- 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
When it happens
Trigger: 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).
Common situations: 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.
Understand the failure class
Background: Missing required parameter errors: what 'X is required' and 'the required X param is missing' mean, and how to fix them — this error's family across 27 libraries.
Related errors
- response is required for after_execute_meta
- Could not determine a home directory to store the Composio c
- Cache directory {directory} is not writable please provide a
- module {__name__!r} has no attribute {name!r}
- Failed to upload to S3: {_sanitize_url_for_logging(url)}. Er
AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28).
Data as JSON: /api/errors/e8008a224a39b259.
Report an issue: GitHub.