Jump to content

[nexus] IPS\Db\Exception: Field 'p_renewal_unit' doesn't have a default value (1364)

Featured Replies

Posted

Hello, i am getting thie error when i try to add new product, any idea ?

  • Author

This message when i try to void member purchases histpory :

TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given (0)

What version of Ipb are you using? I don't know if that is an Ipb field or has been added by a third party app, but it looks like it doesn't have a default value. Setting a default value should fix the issue. Doing that will ensure that if no data is provided on insert, it will put something that you defined.

What was the latest change done to the forum before this happened btw?

And as last, but certainly not least, for future reference whenever you are asking for support it would be best to post as many details as possible. i.e. Help us to help you.

Edited by Miss_B

  • Author

Hello, i am on IPB 5.0.1, i didnt use commerce (nexus) before realy, i didnt made any specific change,

Here the full error txt :

INSERT INTO nexus_packages ( p_member_groups, p_date_added, p_store, p_group, p_position, p_type, p_date_updated ) VALUES ( '*', 1739464689, true, '2', 1, 'product', 1739464689 )

IPS\Db\Exception: Field 'p_renewal_unit' doesn't have a default value (1364)

#0 /home/website/webapps/website/system/Db/Db.php(1010): IPS\Db->preparedQuery()

#1 /home/website/webapps/website/system/Patterns/ActiveRecord.php(511): IPS\Db->insert()

#2 /home/website/webapps/website/system/Node/Model.php(2820): IPS\Patterns\ActiveRecord->save()

#3 /home/website/webapps/website/applications/nexus/sources/Package/Package.php(282): IPS\Node\Model->save()

#4 /home/website/webapps/website/applications/nexus/sources/Package/Package.php(1518): IPS\nexus\Package->save()

#5 /home/website/webapps/website/system/Node/Controller.php(489): IPS\nexus\Package->saveForm()

#6 /home/website/webapps/website/system/Dispatcher/Controller.php(128): IPS\Node\Controller->form()

#7 /home/website/webapps/website/system/Node/Controller.php(117): IPS\Dispatcher\Controller->execute()

#8 /home/website/webapps/website/applications/nexus/modules/admin/store/packages.php(88): IPS\Node\Controller->execute()

#9 /home/website/webapps/website/system/Dispatcher/Dispatcher.php(169): IPS\nexus\modules\admin\store\packages->execute()

#10 /home/website/webapps/website/admin/index.php(15): IPS\Dispatcher->run()

#11 {main}

1 hour ago, Janyour said:

Here the full error txt :

INSERT INTO nexus_packages ( p_member_groups, p_date_added, p_store, p_group, p_position, p_type, p_date_updated ) VALUES ( '*', 1739464689, true, '2', 1, 'product', 1739464689 )

IPS\Db\Exception: Field 'p_renewal_unit' doesn't have a default value (1364)

I just checked the nexus_package table and it doesn't contain the p_renewal_unit field. Most likely it has been added by a third party app. Is this a fresh install or an upgrade? Have you installed recently, or previously any third party app that adds to that table?

Anyways, give it a default value and see if it would help. If you aren't using the app that has added it anymore, the best things would be to delete it altogether.

That doesn't actually look to be one of our fields. You would remove that field (after taking a full backup and being prepared to restore if there are any issues) and then try again.

  • Author

Thanks, i just opned this table and its empty!

Here the sql export and content :

nexus_packages.sql

Edited by Janyour

  • Author

Ok thats a default nexus table then.

What i should remove as columns ?

I removed the column and product adding seem working now!

Another issue when i try to void user transactions :

TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given (0)

#0 /home/website/webapps/website/applications/nexus/sources/Transaction/Transaction.php(763): method_exists()

#1 /home/website/webapps/website/applications/nexus/modules/admin/customers/view.php(674): IPS\nexus\Transaction->refund()

#2 /home/website/webapps/website/system/Helpers/MultipleRedirect/MultipleRedirect.php(104): IPS\nexus\modules\admin\customers\view->IPS\nexus\modules\admin\customers\{closure}()

#3 /home/website/webapps/website/applications/nexus/modules/admin/customers/view.php(639): IPS\Helpers\MultipleRedirect->__construct()

#4 /home/website/webapps/website/system/Dispatcher/Controller.php(128): IPS\nexus\modules\admin\customers\view->void()

#5 /home/website/webapps/website/applications/nexus/modules/admin/customers/view.php(102): IPS\Dispatcher\Controller->execute()

#6 /home/website/webapps/website/system/Dispatcher/Dispatcher.php(169): IPS\nexus\modules\admin\customers\view->execute()

#7 /home/website/webapps/website/admin/index.php(15): IPS\Dispatcher->run()

#8 {main}

9 minutes ago, Janyour said:

TypeError: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given (0)

This seems to be related to a php 8 bug called: "method_exists() is too strict in PHP 8". You can read more about this below at the php site.

https://bugs.php.net/bug.php?id=79623

What's your php version set to? Do you have any third party apps installed? If you do, disable them all to either rule them out or identifying (one of) them as being the culprit.

Edited by Miss_B

  • Author

No third parties, php 8.2

Tried just now with php 8.1 and give same error :/

3 minutes ago, Janyour said:

No third parties, php 8.2

Tried just now with php 8.1 and give same error :/

I don't recall seeing this error posted here before. If you have no third party stuff installed this could very well be a bug then imo. But on the other hand, the original error that you posted was caused by a custom field most likely added by a third party item.

So it's hard to say imo.

Edited by Miss_B

  • Author

After v5 upgrade I use ONLY IP products!

what i should do ? open new thread ?

1 minute ago, Janyour said:

After v5 upgrade I use ONLY IP products!

Most likely the custom apps weren't disabled/uninstalled properly by the upgrade and they are still in affect. That's based on your original error message caused by a field added by a third party app. Also the second error that you posted, is a bug with php 8.0. and it could be that a third party app code which is outdated and not compatible with php 8.2. is interfering again.

4 minutes ago, Janyour said:

what i should do ? open new thread ?

This will require taking a look directly in your forum's code. Imo you can either wait until one the Ips staff takes a look at this to determine if it's a bug with Ipb, or it's caused as mentioned above by a third party app. Or you can start a topic at the bugs forum or create a ticket from your Client Area.

Edited by Miss_B

1 minute ago, Miss_B said:

That's based on your original error message caused by a field added by a third party app.

If my memory serves me correctly, earlier versions of commerce did in fact have a p_renewal_unit field.... in its initial stages, only one renewal term was supported.

4 minutes ago, Esther E. said:

If my memory serves me correctly, earlier versions of commerce did in fact have a p_renewal_unit field.... in its initial stages, only one renewal term was supported.

Ah ok. Thank you for the clarification. I wasn't aware of that. Hence why I assumed that that field was added by a third party app.

  • Author

Honestly i dont remember, i installed Nexus 10 or 15 years before but never used realy.

Recently Browsing 0

  • No registered users viewing this page.