Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
sts-ryan-holton opened this issue Mar 19, 2024 · 16 comments

Comments

@sts-ryan-holton
Copy link

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
Copy link
Member

Most likely a duplicate of laravel/jetstream#1454.

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

@sts-ryan-holton
Copy link
Author

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
Copy link
Member

Can you please try what I asked?

@driesvints
Copy link
Member

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

@sts-ryan-holton
Copy link
Author

sts-ryan-holton commented Mar 21, 2024

@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"
  • ✅ Everything works fine, I tried three consecutive requests in a row

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"
  • ❌ The error persists

@jessarcher Thoughts?

@driesvints
Copy link
Member

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

@sts-ryan-holton
Copy link
Author

How might I do that with Laravel Sail?

@driesvints
Copy link
Member

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

@sts-ryan-holton
Copy link
Author

Standby, currently building without opcache...

@sts-ryan-holton
Copy link
Author

sts-ryan-holton commented Mar 21, 2024

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
Copy link
Member

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
Copy link
Author

The project is only 2 days old 👁️

@sts-ryan-holton
Copy link
Author

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
Copy link
Author

sts-ryan-holton commented Apr 5, 2024

This issue is still persisting despite updating to newer package versions

@indigoram89
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants