phalcon/cphalcon · error · Phalcon\Acl\Exceptions\MissingFunctionParameters
You did not provide all necessary parameters for the defined
Error message
You did not provide all necessary parameters for the defined function when checking if '{roleName}' can '{access}' for '{componentName}'. What it means
BeanstalkConnection surfaces beanstalkd's 'JOB_TOO_BIG' reply as an exception: the put() job body exceeds the server's max-job-size (default 65535 bytes, configurable at server start with -z). The server rejects the job; nothing is queued.
Source
Thrown at phalcon/Acl/Adapter/Memory.zep:1092
);
return haveAccess == Enum::ALLOW && this->noArgumentsDefaultAction == Enum::ALLOW;
}
/**
* Number of required parameters == 0 so call funcAccess without
* any arguments
*/
return haveAccess == Enum::ALLOW && call_user_func(funcAccess);
}
// Check necessary parameters
if count(parametersForFunction) >= numberOfRequiredParameters {
return haveAccess == Enum::ALLOW && call_user_func_array(funcAccess, parametersForFunction);
}
// We don't have enough parameters
throw new MissingFunctionParameters(
"You did not provide all necessary parameters for the " .
"defined function when checking if '" . roleName . "' can '" .
access . "' for '" . componentName . "'."
);
}
/**
* Resolves a component identifier (object or string) to its name
*/
private function toComponentName(var component)
{
if typeof component === "object" {
if component instanceof ComponentAwareInterface {
return component->getComponentName();
}
if component instanceof ComponentInterface {
return component->getName();View on GitHub (pinned to b7419de9cd)
Solutions
- Shrink the payload: store the blob in S3/database and enqueue only a reference (URL or ID).
- Raise the server limit: restart beanstalkd with -z <bytes> (e.g. beanstalkd -z 262144).
- Split oversized batches into multiple smaller jobs.
Example fix
// before
$queue->put(json_encode($report)); // report > 64 KiB -> JOB_TOO_BIG
// after
$uri = $storage->upload('reports/' . $id . '.json', $report);
$queue->put(json_encode(['ref' => $uri])); // enqueue a reference Defensive patterns
Strategy: validation
Validate before calling
define('BEANSTALKD_MAX_JOB_SIZE', 65535); // raise if server runs with -z
$payload = json_encode($job);
if (strlen($payload) > BEANSTALKD_MAX_JOB_SIZE) {
$ref = $storage->upload('jobs/' . uniqid() . '.json', $payload);
$payload = json_encode(['storageRef' => $ref]);
}
$queue->put($payload); Prevention
- Enforce a client-side size limit that matches the server's -z setting.
- Design jobs as references (IDs/URLs) to external blobs, never inline payloads.
- Alert on payload size trends before they cross the limit.
When it happens
Trigger: $queue->put($data) where the serialized job body is larger than the server's max job size (default 64 KiB) — e.g. base64-encoded files, large JSON batches, big stack traces.
Common situations: Attaching full payloads (images, PDFs, exports) to jobs instead of references; batch jobs growing over time until they cross 64 KiB; servers started without raising -z.
Related errors
- Access '{access}' does not exist in component '{componentNam
- {elementName} '{element}' does not exist in the {suffix}
- Your passed parameter does not have the same class as the pa
- Object passed as componentName must implement Phalcon\Acl\Co
- Object passed as roleName must implement Phalcon\Acl\RoleAwa
AI-assisted analysis of phalcon/cphalcon@b7419de9cd (2026-08-21).
Data as JSON: /api/errors/ce2f17be8815660e.
Report an issue: GitHub.