Web Cron Job dont work

Hello, i hope someone can help me,
im new here and i will use Invoice Ninja on my self Hosted web space. The porblem is, i have only acces over SFTP and web.
The Installation is finished and works, but i can´t start the cron job …

i do all i can find on the help page , i added the line in the .env but when i write /mydomain/invoiceninja/public/webcron?secret=mypassword on the site cron-job.org i get the answer 500 internal server error
or i write /mydomain/invoiceninja/webcron?secret=mypassword and get 404 Not found

can someone help me, what i can do

Hi,

If you’re seeing a 500 there may be more details in storage/logs

hi thx for the tip but i think i use the wrong adress

i use the site cron-job.org to initial the cron-job and at the moment i use the adress :slight_smile:
https:// mydomain / invoiceninja/public
is this right?
and what exactly i have to change/add in the .htaccess ?
can you help me with this?

@david can you please advise?

What is the error in the logs when the server returns the 500 error/

<head>
    <!-- Error:  -->

                <script>
            function gtag() {
            }
        </script>
    
    <!-- Title -->
                <title>Server Error</title>
    
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content=""/>

    <!-- CSRF Token -->
    <meta name="csrf-token" content="">

    <!-- Scripts -->
    <script src="https://mydomain/invoiceninja/public//js/app.js?id=0e3959ab851d3350364d" defer></script>
    <script src="https://mydomain/invoiceninja/public/vendor/alpinejs@2.8.2/alpine.js" defer></script>

    <!-- Fonts -->
    <link rel="dns-prefetch" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet" type="text/css">

    <!-- Styles -->
    <link href="https://mydomain/invoiceninja/public//css/app.css?id=5fe248ec24749bdc4086" rel="stylesheet">
    

    <link rel="canonical" href="https://mydomain/invoiceninja/public/webcron"/>

    
    
    <style >[wire\:loading], [wire\:loading\.delay], [wire\:loading\.inline-block], [wire\:loading\.inline], [wire\:loading\.block], [wire\:loading\.flex], [wire\:loading\.table], [wire\:loading\.grid] {display: none;}[wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short], [wire\:loading\.delay\.long], [wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest] {display:none;}[wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}input:-webkit-autofill, select:-webkit-autofill, textarea:-webkit-autofill {animation-duration: 50000s;animation-name: livewireautofill;}@keyframes livewireautofill { from {} }</style>

    <link rel="stylesheet" type="text/css" href="https://mydomain/invoiceninja/public/vendor/cookieconsent@3/cookieconsent.min.css" />
</head>

<style>
:root {
    --primary-color: #1c64f2;
}

.bg-primary {
    background-color: var(--primary-color);
}

.bg-primary-darken {
    background-color: var(--primary-color);
    filter: brightness(90%);
}

.text-primary {
    color: var(--primary-color);
}
<body class="antialiased ">
    
        <div class="grid lg:grid-cols-3">
    <div class="hidden lg:block col-span-1 bg-red-100 h-screen">
        <img src="https://mydomain/invoiceninja/public/images/client-portal-new-image.jpg"
             class="w-full h-screen object-cover"
             alt="Background image">
    </div>

    <div class="col-span-2 h-screen flex">
        <div class="m-auto md:w-1/2 lg:w-1/4 flex flex-col items-center">
            <span class="flex items-center text-2xl">
                500 — Server Error                </span>

            <a class="button-link text-sm mt-2" href="https://mydomain/client">
                Back to mydomain
            </a>
        </div>
    </div>
</div>

    <script {$nonce}>console.warn("Livewire: The published Livewire assets are out of date\n See: https://laravel-livewire.com/docs/installation/")</script><script src="https://mydomain/invoiceninja/public//vendor/livewire/livewire.js?id=21fa1dd78491a49255cd" data-turbo-eval="false" data-turbolinks-eval="false" ></script><script data-turbo-eval="false" data-turbolinks-eval="false" >window.livewire = new Livewire();window.Livewire = window.livewire;window.livewire_app_url = 'https://mydomain/invoiceninja/public/';window.livewire_token = '';window.deferLoadingAlpine = function (callback) {window.addEventListener('livewire:load', function () {callback();});};let started = false;window.addEventListener('alpine:initializing', function () {if (! started) {window.livewire.start();started = true;}});document.addEventListener("DOMContentLoaded", function () {if (! started) {window.livewire.start();started = true;}});</script>

    <script src="https://mydomain/invoiceninja/public/vendor/cookieconsent@3/cookieconsent.min.js" data-cfasync="false"></script>
    <script>
        window.addEventListener("load", function(){
            if (! window.cookieconsent) {
                return;
            }
            window.cookieconsent.initialise({
                "palette": {
                    "popup": {
                        "background": "#000"
                    },
                    "button": {
                        "background": "#f1d600"
                    },
                },
                "content": {
                    "href": "https://www.invoiceninja.com/privacy-policy/",
                    "message": "This website uses cookies to ensure you get the best experience on our website.",
                    "dismiss": "Got it!",
                    "link": "Learn more",
                }
            })}
        );
    </script>
</body>

<footer>
                </footer>

@calwi1981

The logs will be located in storage/logs/laravel.log this looks like the output from a webpage

is this the right one?

[2021-12-05 14:25:06] production.ERROR: set_time_limit(): Cannot set max execution time limit due to system policy {“exception”:"[object] (ErrorException(code: 0): set_time_limit(): Cannot set max execution time limit due to system policy at mydomain/app/Http/Controllers/WebCronController.php:60)
[stacktrace]
#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, ‘set_time_limit(…’, ‘/customers/2/5/…’, 60, Array)
#1 mydomain/app/Http/Controllers/WebCronController.php(60): set_time_limit(0)
#2 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\WebCronController->index(Object(Illuminate\Http\Request))
#3 mydomain/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction(‘index’, Array)
#4 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\WebCronController), ‘index’)
#5 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#6 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\Routing\Route->run()
#7 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#8 mydomain/app/Http/Middleware/QueryLogging.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#9 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\QueryLogging->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#11 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#12 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(63): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
#14 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), ‘300’, ‘1’)
#15 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#16 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#17 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#18 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#19 mydomain/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#20 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#21 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#22 mydomain/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Http\SetRequestIpMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 mydomain/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(42): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Http\SetRequestMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 mydomain/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Livewire\DisableBrowserCache->handle(Object(Illuminate\Http\Request), Object(Closure))
#28 mydomain/app/Http/Middleware/Cors.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#29 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\Cors->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 mydomain/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#32 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#33 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#34 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#38 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#41 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#42 mydomain/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#43 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#44 mydomain/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#45 mydomain/public/index.php(57): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#46 {main}
"}

Wow, haven’t seen a host do this one before. That there is your problem.

OK, this is the same Message i get if i will do the migration in my working version of Invoiceninja V4.
Do you have any idea what i can do to fix this?

@calwi1981

This problem is with your webhost. They have disabled the function set_time_limit() completely which is quite a concern. Usually if a webhost doesn’t want you to use a particular function, they can set ignore filters which will still allow the application to work, but this particular setting makes the application incompatible with your hosting infrastructure.

mhhh ok, thanks.
and how long can use the version 4

OK, i talked with my hosting company, and they say, there is set a max execution time of 300 Sekunden, and it is not posible to change this. So is there anything i can change in the script that it works with that configuration of the server?

The problem isn’t the limits, the problem here is they have disabled access to the set_time_limit() function which automatically kills the application