Error after upgrade: column device_profile.class_b_timeout does not exist

Viewed 49

I upgrade my test environment from a pretty old ChirpStack version 4.7 to 4.15.0. Everthing looks okay, but I have this error message is the log:

ERROR chirpstack::downlink::scheduler: Schedule next queue-item for device failed error=column device_profile.class_b_timeout does not exist

Should I have upgraded in multiple steps?

1 Answers

It shouldn't matter if you do the upgrade in steps or in one go. ChirpStack keeps a history of the migrations that have been applied and on upgrade will apply the missing ones.

The class_b_timeout field has been removed from the device_profile table here:

https://github.com/chirpstack/chirpstack/blob/master/chirpstack/migrations_postgres/2025-01-13-152218_refactor_device_profile_fields/up.sql#L69

However, it looks like ChirpStack is still trying to use it in one of the queries. Are you sure the ChirpStack instance printing the error message was restarted?

It was restarted, as the database was updated. However, somehow the version in the image specification was changed back to 4.7. It must have been user error, and I didn't know what to look for. Thanks.