# Ruby upgrade causing dry-container failuers

**URL:** <https://discourse.dry-rb.org/t/ruby-upgrade-causing-dry-container-failuers/1798>\
**Category:** Support\
**Created:** [May 8, 2024, 7:44pm UTC](https://discourse.dry-rb.org/t/ruby-upgrade-causing-dry-container-failuers/1798 "2024-05-08T19:44:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gus](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.dry-rb.org/gus/32/972_2.png) [@Gus](https://discourse.dry-rb.org/u/Gus)\
**Post date:** [May 8, 2024, 7:44pm UTC](https://discourse.dry-rb.org/t/ruby-upgrade-causing-dry-container-failuers/1798/1 "2024-05-08T19:44:45Z")

</div>

Hello I am in the process of upgrading Ruby for our app from 2.5.1 to 3.3.0.

We have the following code which was working in 2.5.1:

```auto
require "dry-container"
require "dry-auto_inject"

module Dealer
  class Container
    extend Dry::Container::Mixin

    register(:get_device_time_zone) do
      GetDeviceTimeZone.new
    end

```

After upgrading to ruby 3.3.0 we started seeing the following error:

```auto
/gems/ruby/3.3.0/gems/dry-container-0.11.0/lib/dry/container/mixin.rb:155:in `register': undefined method `call' for an instance of Hash (NoMethodError)                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                            
        config.registry.call(_container, key, item, options) 

```

I ran the code through the debugger and I see the following:

```auto
From: /gems/ruby/3.3.0/gems/dry-container-0.11.0/lib/dry/container/mixin.rb:155 Dry::Container::Mixin#register:

    147: def register(key, contents = nil, options = EMPTY_HASH, &block)
    148: if block_given?
    149: item = block
    150: options = contents if contents.is_a?(::Hash)
    151: else
    152: item = contents
    153: end
    154: 
 => 155: binding.pry
    156: config.registry.call(_container, key, item, options)
    157: 
    158: self
    159: rescue FrozenError
    160: raise FrozenError,
    161: "can't modify frozen #{self.class} (when attempting to register '#{key}')"
    162: end

[1] pry(NexiaDealer::Container)> config
=> #<#<Class:0x00007cab56ab2da8>:0x00007cab558ce150 @config={:namespace_separator=>{:default=>"."}, :resolver=>{:default=>#<Dry::Container::Resolver:0x00007cab559987e8>}, :registry=>{:default=>#<Dry::Container::Registry:0x00007cab55998748 @_mutex=#<Thread::Mutex:0x00007cab559986d0>>}}>

```

The config.registry is a hash with a default key. I just started diving into this so I am not sure why this is happening. Any help would be appreciated.

---

<div class="post-metadata">

**Author:** ![brauliobo](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.dry-rb.org/brauliobo/32/994_2.png) [@brauliobo](https://discourse.dry-rb.org/u/brauliobo)\
**Post date:** [November 3, 2024, 9:44pm UTC](https://discourse.dry-rb.org/t/ruby-upgrade-causing-dry-container-failuers/1798/2 "2024-11-03T21:44:28Z")

</div>

same here, did you find a solution to it?

---

<div class="post-metadata">

**Author:** ![brauliobo](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.dry-rb.org/brauliobo/32/994_2.png) [@brauliobo](https://discourse.dry-rb.org/u/brauliobo)\
**Post date:** [November 3, 2024, 10:15pm UTC](https://discourse.dry-rb.org/t/ruby-upgrade-causing-dry-container-failuers/1798/3 "2024-11-03T22:15:53Z")

</div>

another gem here was fixing prevent `dry-configurable` to update from 0.7.0 to the latest 1.2.0. updating it made it boot
