{"record":{"id":"5d12eefd129d8cb2","repo":"phalcon/cphalcon","slug":"access-access-does-not-exist-in-component-co","errorCode":null,"errorMessage":"Access '{access}' does not exist in component '{componentName}'","messagePattern":"Access '(.+?)' does not exist in component '(.+?)'","errorType":"exception","errorClass":"Phalcon\\Acl\\Exceptions\\AccessRuleNotFound","httpStatus":null,"severity":"critical","filePath":"phalcon/Acl/Adapter/Memory.zep","lineNumber":784,"sourceCode":"                if unlikely !isset accessList[accessKey] {\n                        throw new AccessRuleNotFound(accessName, componentName);\n                    }\n            }\n\n            for accessName in access {\n                let accessKey = this->buildKey(roleName, componentName, accessName);\n                let this->access[accessKey] = action;\n\n                if func != null {\n                    let this->functions[accessKey] = func;\n                }\n            }\n        } else {\n            if access != \"*\" {\n                let accessKey = this->buildAccessKey(componentName, access);\n\n                if unlikely !isset accessList[accessKey] {\n                    throw new AccessRuleNotFound(access, componentName);\n                }\n            }\n\n            let accessKey = this->buildKey(roleName, componentName, access);\n\n            /**\n             * Define the access action for the specified accessKey\n             */\n            let this->access[accessKey] = action;\n\n            if func != null {\n                let this->functions[accessKey] = func;\n            }\n        }\n    }\n\n    /**\n     * Builds the `<component>!<access>` access-list key","sourceCodeStart":766,"sourceCodeEnd":802,"githubUrl":"https://github.com/phalcon/cphalcon/blob/b7419de9cd0a8a3f48441ead84c9f8415d463e25/phalcon/Acl/Adapter/Memory.zep#L766-L802","documentation":"BeanstalkConnection::connect() opens a TCP socket to the configured host/port (defaults 127.0.0.1:11300) with fsockopen (or pfsockopen when 'persistent' is true). The PHP-level warning is suppressed via error_reporting(0); when the call does not return a stream resource, a generic Exception('Can't connect to the Beanstalk server') is thrown — meaning DNS failure, refused connection, or timeout at socket level.","triggerScenarios":"Any queue operation (put, reserve, stats) on the Beanstalk adapter when beanstalkd is not listening on the configured host:port — server not started, wrong host/port options, firewall blocking 11300, or DNS not resolving.","commonSituations":"Local dev without beanstalkd installed; Docker/compose setups where the service name or port mapping differs; staging/production server crashed or OOM-killed; pfsockopen failing after persistent-connection limits; typo'd host in env config.","solutions":["Check beanstalkd is running where you point: ps aux | grep beanstalkd (or systemctl status beanstalkd).","Verify reachability from the app host: nc -vz <host> 11300 (or telnet <host> 11300).","Start the server: beanstalkd -l 127.0.0.1 -p 11300, or via Docker: docker run -p 11300:11300 beanstalkd.","Fix the host/port/persistent options in the adapter/queue configuration (watch for env-var typos and Docker service names).","Check firewall/security groups and DNS resolution for remote hosts."],"exampleFix":"// before\n$connection = new BeanstalkConnection('beantalk.internal', 11300); // typo'd host\n\n// after\n$connection = new BeanstalkConnection('beanstalk.internal', 11300);\n// verify first from the app host:\n// $ nc -vz beanstalk.internal 11300","handlingStrategy":"retry","validationCode":"// Pre-flight: is beanstalkd reachable before dispatching work?\n$socket = @fsockopen($host, $port, $errno, $errstr, 2.0);\nif ($socket === false) {\n    throw new \\RuntimeException(\"beanstalkd unreachable at {$host}:{$port} ({$errstr})\");\n}\nfclose($socket);","typeGuard":null,"tryCatchPattern":"try {\n    $queue->put($job);\n} catch (\\Phalcon\\Queue\\Exceptions\\Exception $e) {\n    if ($e->getMessage() === \"Can't connect to the Beanstalk server\") {\n        // transient outage: back off, then retry once; alert if it persists\n        usleep(500000);\n        $queue->put($job);\n    } else {\n        throw $e;\n    }\n}","preventionTips":["Run a readiness check (nc -vz host 11300) in deploy pipelines before enabling workers.","Keep host/port in one validated config source; log them (values, not secrets) on connection failure.","Use supervised beanstalkd (systemd/docker restart policy) so crashes self-heal."],"tags":["queue","beanstalk","connection","network","tcp"],"backgroundTag":"connection-refused","analyzedSha":"b7419de9cd0a8a3f48441ead84c9f8415d463e25","analyzedAt":"2026-08-21T06:21:18.811Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}