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

3.6.5 -> 4.0.4 post update - Company cannot be NULL (not selected) #4044

Closed
2 tasks done
leobg opened this issue Sep 27, 2017 · 9 comments
Closed
2 tasks done

3.6.5 -> 4.0.4 post update - Company cannot be NULL (not selected) #4044

leobg opened this issue Sep 27, 2017 · 9 comments

Comments

@leobg
Copy link

leobg commented Sep 27, 2017

Expected Behavior (or desired behavior if a feature request)

user updated and return to previous page

Actual Behavior

500 error message displayed

Please confirm you have done the following before posting your bug report:


Please provide answers to these questions before posting your bug report:

  • Version of Snipe-IT you're running 4.0.4
  • What OS and web server you're running Snipe-IT on CentOS 7
  • What method you used to install Snipe-IT (install.sh, manual installation, docker, etc) manual install
  • WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`snipeit`.`users`, CONSTRAINT `users_company_id_foreign` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`)) (SQL: update `users` set `permissions` = {"superuser":"0","admin":"0","reports.view":"0","assets.view":"0","assets.create":"0","assets.edit":"0","assets.delete":"0","assets.checkin":"0","assets.checkout":"0","assets.audit":"0","assets.view.requestable":"0","accessories.view":"0","accessories.create":"0","accessories.edit":"0","accessories.delete":"0","accessories.checkout":"0","accessories.checkin":"0","consumables.view":"0","consumables.create":"0","consumables.edit":"0","consumables.delete":"0","consumables.checkout":"0","licenses.view":"0","licenses.create":"0","licenses.edit":"0","licenses.delete":"0","licenses.checkout":"0","licenses.keys":"0","components.view":"0","components.create":"0","components.edit":"0","components.delete":"0","components.checkout":"0","components.checkin":"0","users.view":"0","users.create":"0","users.edit":"0","users.delete":"0","models.view":"0","models.create":"0","models.edit":"0","models.delete":"0","categories.view":"0","categories.create":"0","categories.edit":"0","categories.delete":"0","departments.view":"0","departments.create":"0","departments.edit":"0","departments.delete":"0","statuslabels.view":"0","statuslabels.create":"0","statuslabels.edit":"0","statuslabels.delete":"0","customfields.view":"0","customfields.create":"0","customfields.edit":"0","customfields.delete":"0","suppliers.view":"0","suppliers.create":"0","suppliers.edit":"0","suppliers.delete":"0","manufacturers.view":"0","manufacturers.create":"0","manufacturers.edit":"0","manufacturers.delete":"0","depreciations.view":"0","depreciations.create":"0","depreciations.edit":"0","depreciations.delete":"0","locations.view":"0","locations.create":"0","locations.edit":"0","locations.delete":"0","self.two_factor":"0","self.api":"0"}, `updated_at` = 2017-09-27 17:49:30, `phone` = , `jobtitle` = , `manager_id` = , `company_id` = , `department_id` =  where `id` = 308)' in /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Connection.php:647
Stack trace:
#0 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Connection.php(607): Illuminate\Database\Connection->runQueryCallback('update `users` ...', Array, Object(Closure))
#1 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Connection.php(477): Illuminate\Database\Connection->run('update `users` ...', Array, Object(Closure))
#2 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Connection.php(416): Illuminate\Database\Connection->affectingStatement('update `users` ...', Array)
#3 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2146): Illuminate\Database\Connection->update('update `users` ...', Array)
#4 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(749): Illuminate\Database\Query\Builder->update(Array)
#5 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(584): Illuminate\Database\Eloquent\Builder->update(Array)
#6 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(504): Illuminate\Database\Eloquent\Model->performUpdate(Object(Illuminate\Database\Eloquent\Builder))
#7 /var/www/snipe-it-4.0.4/app/Http/Controllers/UsersController.php(348): Illuminate\Database\Eloquent\Model->save()
#8 [internal function]: App\Http\Controllers\UsersController->update(Object(App\Http\Requests\SaveUserRequest), '308')
#9 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(55): call_user_func_array(Array, Array)
#10 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\Routing\Controller->callAction('update', Array)
#11 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\UsersController), 'update')
#12 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Route.php(160): Illuminate\Routing\Route->runController()
#13 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Router.php(559): Illuminate\Routing\Route->run()
#14 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#15 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#16 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#17 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#18 /var/www/snipe-it-4.0.4/vendor/laravel/passport/src/Http/Middleware/CreateFreshApiToken.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Laravel\Passport\Http\Middleware\CreateFreshApiToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 /var/www/snipe-it-4.0.4/app/Http/Middleware/CheckForTwoFactor.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#22 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\CheckForTwoFactor->handle(Object(Illuminate\Http\Request), Object(Closure))
#23 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#24 /var/www/snipe-it-4.0.4/app/Http/Middleware/CheckLocale.php(42): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#25 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\CheckLocale->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(65): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#28 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#30 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#31 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#32 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#33 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#34 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#37 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Router.php(561): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#38 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Router.php(520): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#39 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Router.php(498): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#40 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(174): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#41 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#42 /var/www/snipe-it-4.0.4/app/Http/Middleware/CheckForDebug.php(25): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#43 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\CheckForDebug->handle(Object(Illuminate\Http\Request), Object(Closure))
#44 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#45 /var/www/snipe-it-4.0.4/vendor/fideloper/proxy/src/TrustProxies.php(56): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#46 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 /var/www/snipe-it-4.0.4/app/Http/Middleware/CheckForSetup.php(27): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#49 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\CheckForSetup->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 /var/www/snipe-it-4.0.4/app/Http/Middleware/NosniffGuard.php(17): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#52 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\NosniffGuard->handle(Object(Illuminate\Http\Request), Object(Closure))
#53 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#54 /var/www/snipe-it-4.0.4/app/Http/Middleware/XssProtectHeader.php(17): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#55 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\XssProtectHeader->handle(Object(Illuminate\Http\Request), Object(Closure))
#56 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 /var/www/snipe-it-4.0.4/app/Http/Middleware/FrameGuard.php(17): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#58 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): App\Http\Middleware\FrameGuard->handle(Object(Illuminate\Http\Request), Object(Closure))
#59 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#60 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#61 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#62 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#63 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#64 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#65 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#66 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#67 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(148): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#68 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#69 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#70 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(149): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#71 /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#72 /var/www/snipe-it-4.0.4/public/index.php(59): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#73 {main}

  • What specific Snipe-IT page you're on, and what specific element you're interacting with to trigger the error
  • If a stacktrace is provided in the error, include that too.
  • Any errors that appear in your browser's error console.
  • Confirm whether the error is reproduceable on the demo. N/A - demo does not allow saving updated user information - but does not crash
  • Include any additional information you can find in app/storage/logs and your webserver's logs.
  • Include what you've done so far in the installation, and if you got any error messages along the way.
  • Indicate whether or not you've manually edited any data directly in the database
@leobg
Copy link
Author

leobg commented Sep 27, 2017

update: I can't seem to update any asset - page flashes and reloads original content.
Error in log:

Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`snipeit`.`assets`, CONSTRAINT `assets_company_id_foreign` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`)) (SQL: update `assets` set `purchase_date` = 2017-06-01 00:00:00, `purchase_cost` = 1585, `updated_at` = 2017-09-27 18:54:46, `requestable` = 0, `_snipeit_mac_address_1` = , `company_id` =  where `id` = 937)' in /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Connection.php:647

@leobg leobg changed the title v4.0.4 Update user causes 500 error v4.0.4 Update user/asset causes 500 error Sep 27, 2017
@leobg leobg changed the title v4.0.4 Update user/asset causes 500 error 3.6.5 -> 4.0.4 post update - updating user/asset causes 500 error Sep 27, 2017
@leobg
Copy link
Author

leobg commented Sep 27, 2017

I can't pretty much do anything. I believe the issue comes from company ID (I don't have multiple companies) seems like code is trying to use non-existent field in database. My migrations (from 3.6.5) were successful. If I run migrate script again I get 'nothing to migrate'

update: I created a (single) company. If I edit asset/user and select this company, it works (saves and assigns the asset/user to that company. But if company is not selected, error occurs.

@dmeltzer
Copy link
Contributor

What mysql version are you using?

@leobg leobg changed the title 3.6.5 -> 4.0.4 post update - updating user/asset causes 500 error 3.6.5 -> 4.0.4 post update - Company cannot be NULL (not selected) Sep 27, 2017
@leobg
Copy link
Author

leobg commented Sep 27, 2017

5.5.44-MariaDB

@snipe
Copy link
Owner

snipe commented Sep 28, 2017

I could have sworn we pulled out all of the foreign key constraints ages and ages ago. :-/

@snipe
Copy link
Owner

snipe commented Sep 29, 2017

Try running:

ALTER TABLE users DROP FOREIGN KEY users_company_id_foreign;

from a mysql prompt.

@leobg
Copy link
Author

leobg commented Sep 29, 2017

Thanks @snipe - that solved the problem with users. I guess now repeat for assets table? Any other tables i need to drop the foreign keys?

@snipe
Copy link
Owner

snipe commented Oct 4, 2017

The latest from master has a migration that should fix this issue for everything.

@snipe snipe closed this as completed Oct 4, 2017
@leobg
Copy link
Author

leobg commented Oct 10, 2017

I hate to bring this one up back to life, but I've got another one of these. When I try to create an asset type:

Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'depreciation_id' cannot be null (SQL: insert into `models` (`eol`, `depreciation_id`, `name`, `model_number`, `manufacturer_id`, `category_id`, `notes`, `user_id`, `requestable`, `updated_at`, `created_at`) values (0, , HP EliteDisplay E243, E243, 8, 5, , 3, 0, 2017-10-10 10:22:09, 2017-10-10 10:22:09))' in /var/www/snipe-it-4.0.4/vendor/laravel/framework/src/Illuminate/Database/Connection.php:647
Stack trace:

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

No branches or pull requests

3 participants