PHP & Laravel Errors
Memory limits, execution timeouts, autoloading, Composer and PDO connections.
Understanding PHP errors
PHP errors are dominated by per-request resource limits (memory_limit, max_execution_time) and by autoloading. Class-not-found errors are almost never missing code. They are a namespace that does not match the PSR-4 mapping, or a stale Composer autoload map. Laravel adds a caching layer that produces genuinely confusing errors when configuration is cached with the wrong environment.
How to debug PHP errors
- Read the real limits from the running process, not from a config file:
php -i | grep -E 'memory_limit|max_execution_time'. CLI and FPM have separate configurations. - Regenerate the autoload map with
composer dump-autoload -obefore investigating a class-not-found error any further. - For Laravel, clear cached config and routes with
php artisan optimize:clear. A config cache built in the wrong environment causes errors that survive every code change. - Enable full error display in development (
display_errors=On,error_reporting=E_ALL). The default production settings hide the cause. - For PDO connection refusals, test the same credentials with the database's own CLI client to separate PHP configuration from database access.
Tools worth reaching for
php -icomposer dump-autoload -ophp artisan optimize:clearXdebugtail -f storage/logs/laravel.log
All 20 PHP errors
- Allowed memory size exhaustedThe PHP script exceeded the configured memory_limit. Usually caused by loading large datasets, infinite loops, or…
- Class 'X' not foundPHP cannot find the specified class. Usually caused by a missing use statement, incorrect namespace, or autoloader not…
- Composer detected issues in your platform: Your Composer dependencies require NewSince Composer 2, vendor/composer/platform_check.php runs on every request and stops the app if the PHP running it is…
- Composer: Your lock file does not contain a compatible set of packages Newcomposer install found that the versions pinned in composer.lock cannot run here, almost always because of the PHP…
- Laravel: 419 Page Expired NewThe CSRF token sent with the form did not match the session, and Laravel answers with 419 rather than 403. Most of the…
- Laravel: No application encryption key has been specified. NewAPP_KEY is empty in the environment Laravel actually loaded, so it cannot encrypt cookies or sessions. On a fresh…
- Laravel: Target class [X] does not existLaravel container cannot resolve the class. Usually due to missing 'use' statement, typo, or outdated Composer…
- Laravel: Vite manifest not found at: /var/www/public/build/manifest.json NewThe @vite directive reads public/build/manifest.json to find the hashed asset filenames, and that file only exists…
- Maximum execution time exceededThe PHP script ran longer than the max_execution_time setting allows. Default is usually 30 seconds.
- PHP 8.1: Passing null to parameter #1 ($string) of type string is deprecated NewBuilt-in functions used to treat null as an empty string or zero. PHP 8.1 deprecated that, so trim(null), strlen(null)…
- PHP 8.2: Deprecated: Creation of dynamic property Foo::$bar is deprecated NewSince PHP 8.2, assigning to a property that the class never declared raises a deprecation, and it is scheduled to…
- PHP 8.4: Implicitly marking parameter as nullable is deprecated NewDeclaring a typed parameter with a null default used to imply a nullable type. PHP 8.4 deprecates the implicit form…
- PHP-FPM: server reached pm.max_children setting, consider raising it NewEvery worker in the pool is busy, so new requests sit in the listen backlog until Nginx gives up with a 502 or 504…
- PHP: count(): Argument #1 ($value) must be of type Countable|array, null given NewSince PHP 8.0, count() throws a TypeError for anything that is not an array or a Countable object. PHP 7.2 only…
- PHP: Fatal error: Call to a member function x() on null NewA method was called on a variable holding null, which PHP 8 treats as a fatal Error rather than a warning. The null is…
- PHP: Fatal error: Uncaught Error: Call to undefined function mysqli_connect() NewPHP cannot find the function because the mysqli extension is not loaded in the PHP that ran the script. MySQL itself…
- PHP: Warning: Cannot modify header information - headers already sent by NewSomething was written to the response before header(), setcookie() or session_start() ran, and once the first byte has…
- SQLSTATE[HY000]: Connection refusedPDO cannot connect to the database server. The database may be down, credentials wrong, or the host/port incorrect.
- Undefined index / Undefined array keyAccessing an array key that does not exist. In PHP 8+ this is a warning; in older versions it was a notice.
- Your requirements could not be resolved to an installable set of packagesComposer cannot find compatible versions for all dependencies. Two or more packages require conflicting versions of a…
Other categories
- AI 35Rate limits, context windows, GPU memory and model-serving failures.
- Ansible 18Unreachable hosts, become passwords, undefined variables and Jinja2 failures.
- API 20Auth headers, payload limits, versioning, idempotency and webhook signatures.
- Apple 20Command line tools, dyld, Homebrew permissions, notarisation and Keychain.
- Auth 20OIDC, SAML, Auth0, Okta, Keycloak, passkeys and MFA failures.
- BigData 17Spark, Kafka, Airflow, Snowflake, Flink and Databricks failures.
- C# 18NuGet restore, null references, EF Core migrations, async deadlocks and Blazor…
- C++ 20Segfaults, linker errors, memory corruption and template deduction failures.
- Caching 20Cache stampedes, stale content, Varnish and CloudFront failures.
- CI/CD 18GitHub Actions, GitLab CI, Jenkins, CircleCI: permissions, runners and…
- Client 21CORS, mixed content, module resolution, memory limits and framework runtime…
- Cloud 25IAM permissions, quotas, service limits and credential failures.
- Dart 20Null safety, pub version solving and build toolchain problems.
- Database 41Connections, deadlocks, constraints, replication and memory limits.
- DNS 20NXDOMAIN, SERVFAIL, timeouts, propagation and delegation problems.
- Docker 27Daemon connectivity, disk space, image pulls, ports and architecture mismatches.
- Elixir 18GenServer timeouts, supervision failures and Mix compilation problems.
- Email 20Delivery failures, relay denial, authentication, SPF, DKIM and DMARC.
- Frontend 23Hydration mismatches, bundler resolution, layout shift and font loading.
- Git 20Merge conflicts, rejected pushes, detached HEAD, LFS and repository corruption.
- Go 19Nil map assignment, concurrent map access, context cancellation and deadlocks.
- GraphQL 19Validation, depth limits, N+1 queries and fragment problems.
- gRPC 17Status codes, deadlines, message limits, TLS and HTTP/2 transport failures.
- HTTP 494xx client errors, 5xx server errors, redirects, headers and protocol problems.
- ICMP 23Destination unreachable, time exceeded, fragmentation needed and redirects.
- Ingress 20404 default backend, missing TLS secrets, IngressClass and path matching.
- Java 19Class loading, dependency resolution, connection pools and JVM version…
- JavaScript 42npm resolution, async pitfalls, hydration, memory limits and runtime type…
- Kubernetes 34CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC, scheduling and storage.
- Logging 18Log4j, Logback, Fluentd, Logstash and CloudWatch ingestion problems.
- MessageQueue 20Kafka, RabbitMQ, SQS, NATS and Celery: lag, rebalancing and poison messages.
- Mobile 20Gradle, CocoaPods, Xcode signing, Metro bundler and toolchain mismatches.
- Monitoring 18Prometheus scrapes, Grafana data sources, OpenTelemetry exporters and agent…
- Network 35Refused connections, timeouts, resets, MTU problems and port exhaustion.
- Performance 19GC pauses, thread pool starvation and event loop blocking.
- Proxy 20nginx, Envoy, HAProxy, Traefik, Caddy and Cloudflare upstream failures.
- Python 35Imports, virtual environments, encoding, concurrency and dependency conflicts.
- Regex 17Catastrophic backtracking, back references, escaping and engine differences.
- Ruby 20Bundler, migrations, native extensions, encoding and asset compilation.
- Rust 19Borrow checker, ownership moves, trait bounds and lifetime mismatches.
- Scala 17Dependency resolution, binary compatibility and type inference failures.
- Security 25JWT validation, CSRF, OAuth grants, SELinux, SSH host keys and CSP.
- Serverless 20Lambda timeouts, package size limits, VPC networking and cold starts.
- Shell 19Command not found, permissions, quoting, expansion and Makefile syntax.
- Storage 19S3 permissions, NFS mounts, quotas, signed URLs and volume attachment.
- Svelte 20Store subscriptions, load functions and server/client boundaries.
- System 26Disk space, systemd units, file descriptors, OOM killer and scheduled jobs.
- Terraform 18State locks, provider auth, drift, dependency cycles and plan-time unknowns.
- Testing 18Jest, pytest, JUnit, Cypress and Playwright: fixtures, snapshots and timeouts.
- TLS 24Untrusted authorities, expiry, hostname mismatch, chains and cipher negotiation.
- TypeScript 19Assignability, missing declarations, strict null checks and generic constraints.
- Virtualization 20VirtualBox, VMware, Hyper-V, WSL, KVM and hypervisor conflicts.
- Web3 17Gas estimation, nonce management and reverted transactions.
- WebAssembly 17Compile errors, memory bounds and host binding mismatches.
- WebServer 20nginx, Apache, IIS and Caddy: binding, permissions, rewrites and TLS.
- Windows 20Installer failures, missing runtimes, update errors and permission problems.