V5 migration payments won't import

Hi, I’ve migrated from V4.5.40 to V5.1.74, I can see all my clients, invoices, products, but can’t import payments and quotes. I’ve used the automated migration from the V4, with a force option the second time. I also tried exporting in csv file the payments and import them in V5, but it’s not working.

I also have a notification in V5 that the cron are not enabled. Here’s what I have in my cron job :
30, 8, , , * cd /home/ataka*/ninja* && /opt/alt/php73/usr/bin/php -d register_argc_argv=On artisan schedule:run >> /dev/null 2>&1

Crons were working under V4, here’s what I had :
0, 8, , , * /opt/alt/php73/usr/bin/php /home/ataka*/ninja*/artisan ninja:send-reminders >/dev/null
0, 8, , , * /opt/alt/php73/usr/bin/php /home/ataka*/ninja*/artisan ninja:send-invoices >/dev/null

Any help would be appreciated, thank you.

Are there any errors in the logs in storage/logs/

@david do you have any suggestions?

here’s the content :

[2021-06-21 16:24:59] production.INFO: Importing account
[2021-06-21 16:24:59] production.INFO: Importing company
[2021-06-21 16:24:59] production.INFO: the path https://xxxxxxxxxxx/public/storage/b6ul3pnktv9yfbbfz8fwmbjznmo3nepz/QekTA2sgIq5akH9eVJlgAyYlDfkMfTxuNmn5VWmm.png
[2021-06-21 16:24:59] production.INFO: Importing users
[2021-06-21 16:24:59] production.INFO: Importing payment_terms
[2021-06-21 16:24:59] production.INFO: Importing tax_rates
[2021-06-21 16:24:59] production.INFO: Importing clients
[2021-06-21 16:25:41] production.INFO: Importing company_gateways
[2021-06-21 16:25:41] production.INFO: Importing client_gateway_tokens
[2021-06-21 16:25:42] production.INFO: Importing vendors
[2021-06-21 16:25:42] production.INFO: Importing projects
[2021-06-21 16:25:43] production.INFO: Importing products
[2021-06-21 16:25:47] production.INFO: Importing credits
[2021-06-21 16:25:47] production.INFO: Importing invoices
[2021-06-21 16:26:20] production.INFO: Importing recurring_invoices
[2021-06-21 16:26:22] production.INFO: Importing quotes
[2021-06-21 16:26:22] production.INFO: Argument 2 passed to App\Jobs\Util\Import::tryTransformingId() must be of the type string, null given, called in /home/atakaxxx/ninjax/app/Jobs/Util/Import.php on line 932
[2021-06-21 16:26:22] production.ERROR: Argument 2 passed to App\Jobs\Util\Import::tryTransformingId() must be of the type string, null given, called in /home/atakaxxx/ninjax/app/Jobs/Util/Import.php on line 932 {“userId”:1,“exception”:"[object] (TypeError(code: 0): Argument 2 passed to App\Jobs\Util\Import::tryTransformingId() must be of the type string, null given, called in /home/atakaxxx/ninjax/app/Jobs/Util/Import.php on line 932 at /home/atakaxxx/ninjax/app/Jobs/Util/Import.php:1586)
[stacktrace]
#0 /home/atakaxxx/ninjax/app/Jobs/Util/Import.php(932): App\Jobs\Util\Import->tryTransformingId(‘invoices’, NULL)
#1 /home/atakaxxx/ninjax/app/Jobs/Util/Import.php(211): App\Jobs\Util\Import->processQuotes(Array)
#2 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\Util\Import->handle()
#3 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#4 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#5 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#6 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/Container.php(614): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#7 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call(Array)
#8 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(App\Jobs\Util\Import))
#9 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\Util\Import))
#10 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#11 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php(69): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\Util\Import))
#12 /home/atakaxxx/ninjax/app/Jobs/Util/StartMigration.php(128): App\Jobs\Util\Import::dispatchNow(’/home/atakaxxx/…’, Object(App\Models\Company), Object(App\Models\User))
#13 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(36): App\Jobs\Util\StartMigration->handle()
#14 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/Util.php(40): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#15 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#16 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#17 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Container/Container.php(614): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#18 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(128): Illuminate\Container\Container->call(Array)
#19 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(App\Jobs\Util\StartMigration))
#20 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\Util\StartMigration))
#21 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#22 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(120): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\Util\StartMigration), false)
#23 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}(Object(App\Jobs\Util\StartMigration))
#24 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\Util\StartMigration))
#25 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#26 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(70): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\SyncJob), Object(App\Jobs\Util\StartMigration))
#27 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(98): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\SyncJob), Array)
#28 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php(43): Illuminate\Queue\Jobs\Job->fire()
#29 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(253): Illuminate\Queue\SyncQueue->push(Object(App\Jobs\Util\StartMigration))
#30 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(229): Illuminate\Bus\Dispatcher->pushCommandToQueue(Object(Illuminate\Queue\SyncQueue), Object(App\Jobs\Util\StartMigration))
#31 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(77): Illuminate\Bus\Dispatcher->dispatchToQueue(Object(App\Jobs\Util\StartMigration))
#32 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php(202): Illuminate\Bus\Dispatcher->dispatch(Object(App\Jobs\Util\StartMigration))
#33 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php(17): Illuminate\Foundation\Bus\PendingDispatch->__destruct()
#34 /home/atakaxxx/ninjax/app/Http/Controllers/MigrationController.php(388): App\Jobs\Util\StartMigration::dispatch(‘migrations/b6ul…’, Object(App\Models\User), Object(App\Models\Company))
#35 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\MigrationController->startMigration(Object(Illuminate\Http\Request))
#36 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction(‘startMigration’, Array)
#37 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Route.php(254): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\MigrationController), ‘startMigration’)
#38 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Route.php(197): Illuminate\Routing\Route->runController()
#39 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\Routing\Route->run()
#40 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#41 /home/atakaxxx/ninjax/app/Http/Middleware/QueryLogging.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\QueryLogging->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 /home/atakaxxx/ninjax/app/Http/Middleware/Locale.php(34): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\Locale->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 /home/atakaxxx/ninjax/app/Http/Middleware/TokenAuth.php(80): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\TokenAuth->handle(Object(Illuminate\Http\Request), Object(Closure))
#49 /home/atakaxxx/ninjax/app/Http/Middleware/SetDb.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#50 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\SetDb->handle(Object(Illuminate\Http\Request), Object(Closure))
#51 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#52 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(63): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest(Object(Illuminate\Http\Request), Object(Closure), Array)
#53 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\ThrottleRequests->handle(Object(Illuminate\Http\Request), Object(Closure), ‘300’, ‘1’)
#54 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#55 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#56 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#57 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#58 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#59 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#60 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#61 /home/atakaxxx/ninjax/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(55): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#62 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Http\SetRequestIpMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#63 /home/atakaxxx/ninjax/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(52): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#64 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Http\SetRequestMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
#65 /home/atakaxxx/ninjax/app/Http/Middleware/Cors.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#66 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\Cors->handle(Object(Illuminate\Http\Request), Object(Closure))
#67 /home/atakaxxx/ninjax/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#68 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#69 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#70 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#71 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#72 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#73 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#74 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#75 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#76 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#77 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#78 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#79 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#80 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#81 /home/atakaxxx/ninjax/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#82 /home/atakaxxx/ninjax/public/index.php(57): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#83 {main}
"}

So your migration has failed because there is a problem with your dataset.

Have you modified the V4 database manually at all?

It’s possible that in the past i’ve deleted an invoice manualy in the database, but i’m not sure… it’s the only thing that I can see…

If I go manualy in payments (V5), create a new payment, and try to enter an invoice number, I only have 4 invoices available on the 136 in my database, so I can’t enter manually the payment for each invoice, that could have been a solution… but a pretty long one.

The invoices are mark as paid, but received amount is 0$.

I don’t have the message for the cron job anymore, seems to be fine for now.