Why am I getting 'invalid connection option "tty"' errors when using the 'queue_classic' Ruby gem?

Issue

After the 2021-10-11 stack image update you are receiving Ruby exceptions from the queue_classic Ruby gem, like:

Traceback (most recent call last):
       16: from .../activejob-5.2.6/lib/active_job/logging.rb:46:in `block in tag_logger'
       15: from .../activejob-5.2.6/lib/active_job/logging.rb:17:in `block (3 levels) in <module:Logging>'
       14: from .../activesupport-5.2.6/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
       13: from .../activejob-5.2.6/lib/active_job/enqueuing.rb:51:in `block in enqueue'
       12: from .../activejob-5.2.6/lib/active_job/queue_adapters/queue_classic_adapter.rb:35:in `enqueue_at'
       11: from .../queue_classic-3.2.0.RC1/lib/queue_classic/queue.rb:53:in `enqueue_at'
       10: from .../queue_classic-3.2.0.RC1/lib/queue_classic/queue.rb:63:in `enqueue_in'
        9: from .../queue_classic-3.2.0.RC1/lib/queue_classic.rb:70:in `log_yield'
        8: from .../queue_classic-3.2.0.RC1/lib/queue_classic/queue.rb:67:in `block in enqueue_in'
        7: from .../queue_classic-3.2.0.RC1/lib/queue_classic/queue.rb:20:in `conn_adapter'
        6: from .../queue_classic-3.2.0.RC1/lib/queue_classic.rb:57:in `default_conn_adapter'
        5: from .../queue_classic-3.2.0.RC1/lib/queue_classic.rb:57:in `new'
        4: from .../queue_classic-3.2.0.RC1/lib/queue_classic/conn_adapter.rb:9:in `initialize'
        3: from .../queue_classic-3.2.0.RC1/lib/queue_classic/conn_adapter.rb:80:in `establish_new'
        2: from .../queue_classic-3.2.0.RC1/lib/queue_classic/conn_adapter.rb:80:in `new'
        1: from .../queue_classic-3.2.0.RC1/lib/queue_classic/conn_adapter.rb:80:in `initialize'
PG::ConnectionBad (invalid connection option "tty")

This is caused by the queue_classic gem using the legacy "tty" PostgresSQL option - which was deprecated in 2003, and finally removed from the libpq client library in PostgresSQL 14 (which was included in the libpq5 update in the recent stack image update).

For more details, see:
https://github.com/QueueClassic/queue_classic/issues/333

Resolution

Update to queue_classic v4.0.0-beta1 or newer, since it includes this fix:
https://github.com/QueueClassic/queue_classic/pull/334

Or if you are not able to use the v4 release, we recommend asking the queue_classic maintainers to backport the fix to previous major versions (example), and in the meantime fork the queue_classic respository and backport this commit.

Ask on Stack Overflow

Engage with a community of passionate experts to get the answers you need

Ask on Stack Overflow

Heroku Support

Create a support ticket and our support experts will get back to you

Contact Heroku Support