laravel / octane

Supercharge your Laravel application's performance.
https://laravel.com/docs/octane
MIT License
3.73k stars 289 forks source link

Bug: Target [Illuminate\Contracts\Routing\ResponseFactory] is not instantiable while building [Illuminate\Routing\ViewController]. with Breeze / Livewire #858

Closed sts-ryan-holton closed 4 months ago

sts-ryan-holton commented 4 months ago

Octane Version

2.3.5

Laravel Version

11.0.7

PHP Version

8.3.4

What server type are you using?

Open Swoole

Server Version

latest

Database Driver & Version

MySQL 8

Description

When using Octane and Laravel Livewire v3 with the default Breeze scafolding, updating user's profile results in the following error:

Target [Illuminate\Contracts\Routing\ResponseFactory] is not instantiable while building [Illuminate\Routing\ViewController].

Steps To Reproduce

  1. New laravel installation via Laravel Sail
  2. Install Breeze with Laravel Livewire scaffolding
  3. Update user's profile
  4. error is shown

Screenshot 2024-03-19 at 09 19 18

driesvints commented 4 months ago

Most likely a duplicate of https://github.com/laravel/jetstream/issues/1454.

Does the same thing happen with Sail and Breeze but without Octane?

sts-ryan-holton commented 4 months ago

The suggestion in there for now is to add something to the providers.php file. Do I need to add the Octane service provider here as a temp workaround? There's no published service provider within the providers directory 👁️

driesvints commented 4 months ago

Can you please try what I asked?

driesvints commented 4 months ago

Gonna close this as this most likely is a duplicate of the above. We've also probably got a fix in soon: https://github.com/laravel/framework/pull/50665

sts-ryan-holton commented 4 months ago

@driesvints I've just tested what you've described, I've removed the Octane integration from my Docker compose file whilst still using Sail and the default PHP artisan server. Also note, I have upgraded to Laravel 11.0.8 which was released a few minutes ago.

Without Octane (commenting this out)

# SUPERVISOR_PHP_COMMAND: "/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=swoole --host=0.0.0.0 --port=80 --watch"

With Octane

SUPERVISOR_PHP_COMMAND: "/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=swoole --host=0.0.0.0 --port=80 --watch"

@jessarcher Thoughts?

driesvints commented 4 months ago

@sts-ryan-holton could you try with opcache disabled? We merged https://github.com/laravel/sail/pull/684 in but still need to tag. If that solves things for you I'll tag a new release.

sts-ryan-holton commented 4 months ago

How might I do that with Laravel Sail?

driesvints commented 4 months ago

Publish the runtime files with sail:publish, do the same changes as in the PR and rebuild the images.

sts-ryan-holton commented 4 months ago

Standby, currently building without opcache...

sts-ryan-holton commented 4 months ago

Okay, everything has been built with opcache disabled as per that PR. Launched the project again with Octane, and still getting the error:

Target [Illuminate\Contracts\Routing\ResponseFactory] is not instantiable while building

[Illuminate\Routing\ViewController]. built

opcache-disabled

Screenshot 2024-03-21 at 15 09 54

Guessing then that this isn't opcache related, but rather something else? :(

driesvints commented 4 months ago

I tried your steps with latest sail and I don't get the error. I recommend you start from a fresh project, without any docker images/containers and try again.

sts-ryan-holton commented 4 months ago

The project is only 2 days old :eye:

sts-ryan-holton commented 4 months ago

If it helps, here's my composer.json file

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The skeleton application for the Laravel framework.",
    "keywords": ["laravel", "framework"],
    "license": "MIT",
    "require": {
        "php": "^8.2",
        "hashids/hashids": "5.0.2",
        "laravel/framework": "11.0.8",
        "laravel/octane": "2.3.5",
        "laravel/tinker": "^2.9",
        "livewire/livewire": "3.4.9",
        "livewire/volt": "1.6.3",
        "pion/laravel-chunk-upload": "1.5.3"
    },
    "require-dev": {
        "fakerphp/faker": "^1.23",
        "laravel/breeze": "2.0.0",
        "laravel/pint": "^1.13",
        "laravel/sail": "1.29.*",
        "laravel/telescope": "5.0.*",
        "mockery/mockery": "^1.6",
        "nunomaduro/collision": "^8.0",
        "phpunit/phpunit": "^11.0",
        "spatie/laravel-ignition": "^2.4"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi",
            "@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
            "@php artisan migrate --graceful --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": [
                "laravel/telescope"
            ]
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}
sts-ryan-holton commented 4 months ago

This issue is still persisting despite updating to newer package versions

sts-ryan-holton commented 3 months ago

Same as: https://laracasts.com/discuss/channels/livewire/laravel-sail-with-octane-swoole-and-breeze-and-when-i-log-out-an-error-occurs

indigoram89 commented 3 months ago

The same error right now after I installed Octane with FrankenPHP. Without it everything works fine. I also use Livewire.