<testsuite name="rspec1" tests="683" skipped="2" failures="456" errors="0" time="15763.206011" timestamp="2025-01-31T13:29:25+00:00" hostname="fv-az1680-148">
<properties>
<property name="seed" value="50069"/>
</properties>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason contains the error when state is suspended" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.837117"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason is reset to nil when :connected" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.533905"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason is reset to nil when :closed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.171898"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason contains the error when state is failed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.800382"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host #error_reason contains the error when state is disconnected" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.023443"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :failed #close will not transition state to :close and fails with an InvalidStateChange exception" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.782242"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when disconnected enters the suspended state after multiple attempts to connect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.817001"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when disconnected #close transitions connection state to :closed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.160377"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when disconnected for the first time reattempts connection immediately and then waits disconnected_retry_timeout for a subsequent attempt" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="2.168268"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :suspended stays in the suspended state after any number of reconnection attempts" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="3.791599"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :suspended for the first time waits suspended_retry_timeout before attempting to reconnect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.359976"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929abb80&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929abb80&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:401:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry with invalid WebSocket host when connection state is :suspended #close transitions connection state to :closed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.787843"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry #connect connection opening times out attempts to reconnect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="32.977576"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d68548&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d68548&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:509:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol automatic connection retry #connect connection opening times out when retry intervals are stubbed to attempt reconnection quickly never calls the provided success block" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.511406"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server reconnects automatically and immediately (#RTN15a)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.065339"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091ccaec0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091ccaec0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:568:in `fail_if_suspended_or_failed&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:574:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server and subsequently fails to reconnect retries every 15 seconds" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.007252"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ba85c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ba85c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:568:in `fail_if_suspended_or_failed&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:864:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored resumes connections when disconnected within the connection_state_ttl period (#RTN15g)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.783385"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640928f7e78&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640928f7e78&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:650:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since being disconnected clears the local connection state and uses a new connection when the connection_state_ttl period has passed (#RTN15g)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.870774"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091cf2a38&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091cf2a38&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:690:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since last activity on the connection does not clear the local connection state when the connection_state_ttl period has passed since last activity, but the idle timeout has not passed (#RTN15g1, #RTN15g2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="36.088619"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since last activity on the connection still reattaches the channels automatically following a new connection being established (#RTN15g2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="27.883260"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b80ca8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b80ca8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:808:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server connection state freshness is monitored when connection_state_ttl period has passed since last activity on the connection clears the local connection state and uses a new connection when the connection_state_ttl + max_idle_interval period has passed since last activity (#RTN15g1, #RTN15g2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.757915"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409280f628&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409280f628&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:775:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server when protocolMessage contains token error library have a means to renew the token (#RTN15h2) attempts to reconnect" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.591435"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564090dd7ad0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564090dd7ad0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:626:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when DISCONNECTED ProtocolMessage received from the server when protocolMessage contains token error library does not have a means to renew the token (#RTN15h1) moves connection state to failed" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="35.334402"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a398e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a398e0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:602:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connected with no error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.255736"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092050b80&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092050b80&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1318:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connected with a token error code in the range 40140 &lt;= code &lt; 40150 (#RTN14b) triggers a re-authentication" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.647834"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ceb408&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ceb408&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1289:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connected with an error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.206628"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409299e7c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409299e7c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1305:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connecting with an error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.111763"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091ef3080&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091ef3080&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1305:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connecting with a token error code in the range 40140 &lt;= code &lt; 40150 (#RTN14b) triggers a re-authentication" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.805243"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c84d70&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c84d70&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1289:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when an ERROR protocol message is received whilst connecting with no error code indicating an error other than a token failure (#RTN14g, #RTN15i) causes the connection to fail" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.385574"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409290aa78&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409290aa78&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1318:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume with any other error (#RTN15c4) moves the connection to the failed state" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.938881"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091c9f978&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091c9f978&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume whilst resuming with a token error code in the region 40140 &lt;= code &lt; 40150 (RTN15c5) triggers a re-authentication and then resumes the connection" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.928544"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409174fe28&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409174fe28&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1364:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume as the DISCONNECTED window to resume has passed starts a new connection automatically and does not try and resume" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="32.767148"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c784a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c784a8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1258:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid issue a reattach for all attached channels and fail all message awaiting an ACK (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.771547"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b8cb98&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b8cb98&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1095:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1095:in `times&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1095:in `each&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1095:in `map&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1095:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid issue a reattach for all attaching channels and fail all queued messages (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.408347"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640928ea2a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640928ea2a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1133:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1133:in `times&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1133:in `each&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1133:in `map&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1133:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid continues to use the client_msg_serial (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.072755"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091d857e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091d857e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1222:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid updates the connection_id and connection_key" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.322720"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c736b0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c736b0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1079:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid sets the error reason on each channel" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.024208"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092931128&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092931128&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1071:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1206:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when failing to resume because the connection_key is not or no longer valid issue a attach for all suspended channels (#RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="38.186962"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e4d2c0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e4d2c0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1169:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1169:in `times&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1169:in `each&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1169:in `map&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1169:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when websocket transport is abruptly disconnected reconnects automatically" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="36.818521"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ca81f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ca81f8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:568:in `fail_if_suspended_or_failed&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:907:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume when websocket transport is abruptly disconnected hosts used reconnects with the default host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.892425"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092957d50&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092957d50&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:568:in `fail_if_suspended_or_failed&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:923:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming retains the client_msg_serial (#RTN15c2, #RTN15c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.585208"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091ee80b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091ee80b8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1040:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming retains connection_id and updates the connection_key (#RTN15e, #RTN16d)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.502468"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092caa160&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092caa160&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:947:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming retains channel subscription state" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.932798"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092957af8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092957af8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:560:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:988:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming includes the error received in the connection state change from Ably but leaves the channels attached" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.931853"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e7fa18&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e7fa18&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:560:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:962:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol connection resume after successfully reconnecting and resuming when messages were published whilst the client was disconnected receives the messages published whilst offline" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.946566"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c92718&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c92718&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:560:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1008:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_callback opening a new connection existing CONNECTED connection when callback fails due to the request taking longer than realtime_request_timeout the authorization request fails as configured in the realtime_request_timeout (#RSA4c, #RSA4c1, #RSA4c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.600300"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929209b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929209b8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:256:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_callback opening a new connection when callback fails due to an exception the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.799252"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091dc9808&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091dc9808&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:227:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url existing CONNECTED connection authorize request failure leaves connection in existing condition the connection remains in the CONNECTED state and authorize fails (#RSA4c, #RSA4c1, #RSA4c3)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.385665"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b8fcf8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b8fcf8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:197:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails once due to slow response but succeeds the second time the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.654584"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409358dae8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409358dae8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:178:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails due to slow response and subsequent timeout the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.016897"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409364df28&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409364df28&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:130:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails due to network failure the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.599991"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936afe30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936afe30&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:65:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure with auth_url opening a new connection request fails due to invalid content the connection moves to the disconnected state and tries again, returning again to the disconnected state (#RSA4c, #RSA4c1, #RSA4c2)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="4.016497"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093714c40&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093714c40&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:95:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure when API key is invalid with invalid key name part of the key enters the failed state and returns an authorization error" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.039433"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937cd3f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937cd3f8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:45:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol authentication failure when API key is invalid with invalid app part of the key enters the failed state and returns a not found error" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="38.345753"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093904618&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093904618&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:30:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with custom realtime websocket port option never uses a fallback host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.786426"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a61c68&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a61c68&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1458:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with custom realtime websocket host option never uses a fallback host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="0.968458"></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts_use_default is true uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k7)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.134806"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b788e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b788e0&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1501:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts_use_default is true does not use a fallback host if the connection connects on the default host and then later becomes disconnected" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.488281"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a56688&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a56688&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1520:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts_use_default is unset uses fallback hosts by default" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.512361"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409388b268&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409388b268&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1482:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with non-production environment :fallback_hosts array is provided uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.418686"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370b410&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370b410&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1547:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is down never uses a fallback host" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.445992"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409366f1f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409366f1f0&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1578:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up :fallback_hosts array is provided by an empty array uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.107392"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092eaf258&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092eaf258&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1597:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up :fallback_hosts array is provided uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.381784"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092acc4b0&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092acc4b0&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1597:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up and default options uses the primary host when suspended, and then every fallback host and the primary host again on every subsequent suspended attempt" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.448892"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091d86328&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091d86328&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1597:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up and default options uses the correct host name for the WebSocket requests to the fallback hosts" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="33.603098"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b18fd0&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b18fd0&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1597:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.connection_failures_spec" name="Ably::Realtime::Connection failures using JSON protocol fallback host feature with production environment when the Internet is up and default options uses a fallback host + the original host once on every subsequent disconnected attempt until suspended" file="./spec/acceptance/realtime/connection_failures_spec.rb" time="34.563826"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093950608&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093950608&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:5:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/connection_failures_spec.rb:1597:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe implicitly attaches" file="./spec/acceptance/realtime/presence_spec.rb" time="33.946637"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093750a60&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093750a60&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1902:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe with no arguments calls the callback for all presence events" file="./spec/acceptance/realtime/presence_spec.rb" time="34.023461"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936a14c0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936a14c0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1863:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe with a callback that raises an exception logs the error and continues" file="./spec/acceptance/realtime/presence_spec.rb" time="33.670132"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935f44f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935f44f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1916:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #subscribe with event name calls the callback for specified presence event" file="./spec/acceptance/realtime/presence_spec.rb" time="33.885259"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b463a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b463a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1883:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave succeeds and does not emit an event (#RTP10d)" file="./spec/acceptance/realtime/presence_spec.rb" time="33.946408"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092381110&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092381110&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1245:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option and sync is complete does not cache members that have left" file="./spec/acceptance/realtime/presence_spec.rb" time="33.959052"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b476c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b476c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1218:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option when not passed as an argument (i.e. nil) emits the previous value for the data attribute when leaving" file="./spec/acceptance/realtime/presence_spec.rb" time="34.084773"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939c5520&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939c5520&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1201:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option when set to a string emits the new data for the leave event" file="./spec/acceptance/realtime/presence_spec.rb" time="33.632979"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e0d40&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e0d40&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1171:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave :data option when set to nil emits the last value for the data attribute when leaving" file="./spec/acceptance/realtime/presence_spec.rb" time="34.165975"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936c3ca0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936c3ca0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1186:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="36.687535"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093615038&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093615038&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:301:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="36.883813"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092cb4700&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092cb4700&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:319:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.652663"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409286d700&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409286d700&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:309:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="34.110543"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b68a08&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b68a08&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:294:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="33.360170"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939f96e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939f96e0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:332:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.589032"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409373efb8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409373efb8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.034748"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409364cf88&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409364cf88&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.587323"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c79358&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c79358&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.908818"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091f32e38&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091f32e38&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="34.123272"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ad32a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ad32a0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:210:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.038853"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938adbb0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938adbb0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:240:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="33.271998"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937170f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937170f8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:220:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #leave it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.451841"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409365f188&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409365f188&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1258
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:230:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol state once opened once opened, enters the :left state if the channel detaches" file="./spec/acceptance/realtime/presence_spec.rb" time="34.640370"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e80228&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e80228&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1035:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.925786"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640920d7108&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640920d7108&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.561147"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394ded0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394ded0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and a client_id that is not a string type throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.776811"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936980a0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936980a0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a wildcard client_id and a valid client_id succeeds" file="./spec/acceptance/realtime/presence_spec.rb" time="35.685054"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bb6a60&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bb6a60&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:363:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.416725"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b7af50&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b7af50&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.238788"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409388c0c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409388c0c8&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:412:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="34.530561"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093698528&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093698528&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:403:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when authenticated with a valid client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.927011"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bb59f8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bb59f8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.156499"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b49720&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b49720&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="35.268558"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093808020&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093808020&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:445:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.272534"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093670de8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093670de8&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:454:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a presence on behalf of another client method :update_client when anonymous and no client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.917519"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b816d0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b816d0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1435
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client multiple times on the same channel with different client_ids enters if not already entered" file="./spec/acceptance/realtime/presence_spec.rb" time="35.439397"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b828b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b828b8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1412:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client multiple times on the same channel with different client_ids updates the data attribute to null for the member when :data option is not provided (assumed null)" file="./spec/acceptance/realtime/presence_spec.rb" time="33.973678"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a776d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a776d0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1396:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client multiple times on the same channel with different client_ids updates the data attribute for the member when :data option provided" file="./spec/acceptance/realtime/presence_spec.rb" time="35.128254"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409386bf08&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409386bf08&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1372:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.787484"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093704110&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093704110&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:302:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:301:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method presence update_client : raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.777270"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093636300&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093636300&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:99:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:98:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method presence update_client : raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.472207"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d88370&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d88370&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:65:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="34.615682"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092917b60&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092917b60&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:320:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:319:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method presence update_client : raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.411685"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b70d70&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b70d70&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:116:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:115:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method presence update_client : raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.883114"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939da8d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939da8d0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:83:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:82:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="42.949734"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937d0c38&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937d0c38&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:131:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="34.993896"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936bfb28&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936bfb28&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:295:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:294:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.939741"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093608ab8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093608ab8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:310:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:309:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.679125"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b95900&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b95900&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:333:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:332:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.420788"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923644c0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923644c0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:241:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:240:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="36.438641"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b243a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b243a8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:231:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:230:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.247092"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093930538&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093930538&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:221:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:220:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="34.506293"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093735cb0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093735cb0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:211:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:210:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.033591"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093679538&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093679538&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:153:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.092400"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640931c6ab8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640931c6ab8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:168:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="34.066590"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a451e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a451e0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:143:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="34.751115"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b91e30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b91e30&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:183:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.837262"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939dbeb0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939dbeb0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.849129"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937377b8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937377b8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.455552"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409362e038&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409362e038&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #update_client it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.014659"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c08428&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c08428&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1434
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method presence leave_client : raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="35.288423"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091287b48&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091287b48&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:65:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="34.811683"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a76320&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a76320&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:131:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method presence leave_client : raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.284654"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093837d48&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093837d48&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:83:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:82:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.279060"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936df018&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936df018&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:302:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:301:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method presence leave_client : raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.588979"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093627300&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093627300&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:99:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:98:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="36.720571"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092cd1328&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092cd1328&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:295:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:294:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method presence leave_client : raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.848866"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092842640&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092842640&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:116:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:115:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="33.650476"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b31558&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b31558&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:310:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:309:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="34.875813"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394e010&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394e010&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:320:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:319:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.649430"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372a4c8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372a4c8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.196698"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093615240&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093615240&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.255643"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a86d98&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a86d98&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.465746"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b4d820&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b4d820&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="33.751755"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093921830&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093921830&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:241:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:240:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.496268"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372f400&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372f400&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:221:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:220:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="34.481516"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093665e70&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093665e70&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:211:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:210:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.400186"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e65130&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e65130&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:231:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:230:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="33.973725"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929d6a10&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929d6a10&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:333:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:332:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="34.104055"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b611b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b611b8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:143:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="33.691397"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939c7708&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939c7708&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:183:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="34.654265"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b8570&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b8570&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:168:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="34.581134"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093698f50&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093698f50&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1538
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:153:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.130507"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b72d10&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b72d10&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.069534"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093af3bb8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093af3bb8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.019778"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372d088&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372d088&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:412:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a valid client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="35.494374"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935f78d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935f78d0&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:403:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.716625"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923d75d8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923d75d8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.142974"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409393a100&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409393a100&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:454:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="33.164035"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936bc130&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936bc130&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:445:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when anonymous and no client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.290039"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092caab38&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092caab38&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.004210"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b0c820&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b0c820&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.384506"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370ff60&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370ff60&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and a valid client_id succeeds" file="./spec/acceptance/realtime/presence_spec.rb" time="33.929422"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e80480&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e80480&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:363:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client it should behave like a presence on behalf of another client method :leave_client when authenticated with a wildcard client_id and a client_id that is not a string type throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.727011"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ae3fb0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ae3fb0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1539
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel multiple times on the same channel with different client_ids emits the :leave event for each client_id" file="./spec/acceptance/realtime/presence_spec.rb" time="34.210108"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093958d30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093958d30&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1444:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel multiple times on the same channel with different client_ids succeeds if that client_id has not previously entered the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="34.552814"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093741b28&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093741b28&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1470:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel with a nil value in :data option emits the leave event with the previous value as a convenience" file="./spec/acceptance/realtime/presence_spec.rb" time="35.925928"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093679a10&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093679a10&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1509:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel with no :data option emits the leave event with the previous value as a convenience" file="./spec/acceptance/realtime/presence_spec.rb" time="34.551858"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e83ce8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e83ce8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1524:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #leave_client leaves a channel with a new value in :data option emits the leave event with the new data value" file="./spec/acceptance/realtime/presence_spec.rb" time="34.432848"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929e0970&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929e0970&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1494:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client without necessary capabilities to enter on behalf of another client calls the Deferrable errback on capabilities failure" file="./spec/acceptance/realtime/presence_spec.rb" time="33.650163"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b46278&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b46278&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1350:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1350:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1352:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1353:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1356:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client multiple times on the same channel with different client_ids enters a channel and sets the data based on the provided :data option" file="./spec/acceptance/realtime/presence_spec.rb" time="39.552164"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093956cb0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093956cb0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1315:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client multiple times on the same channel with different client_ids has no affect on the client&apos;s presence state and only enters on behalf of the provided client_id" file="./spec/acceptance/realtime/presence_spec.rb" time="34.162797"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409373ad00&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409373ad00&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1302:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1301:in `times&apos;
./spec/acceptance/realtime/presence_spec.rb:1301:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client message #connection_id matches the current client connection_id" file="./spec/acceptance/realtime/presence_spec.rb" time="34.335549"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093667658&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093667658&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1296:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1296:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:24:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1336:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="35.294479"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c46a20&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c46a20&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:403:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.156065"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b16550&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b16550&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:412:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.730093"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409373cb78&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409373cb78&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:429:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a valid client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.596214"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e53db8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e53db8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:397:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:398:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:422:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and a valid client_id succeeds" file="./spec/acceptance/realtime/presence_spec.rb" time="34.735734"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b5b3d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b5b3d0&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:363:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and a client_id that is not a string type throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.133924"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937cc318&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937cc318&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:387:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.962529"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935eb0d0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935eb0d0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:373:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when authenticated with a wildcard client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.962553"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b78a98&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b78a98&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:358:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:359:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:380:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and an empty client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.189287"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b6a40&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b6a40&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:471:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and a wildcard client_id throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.923409"><failure message="expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409304fb58&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::IncompatibleClientId, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409304fb58&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:464:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and another invalid client_id before authentication allows the operation and then Ably rejects the operation" file="./spec/acceptance/realtime/presence_spec.rb" time="34.429774"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409379cc30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409379cc30&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:440:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:445:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a presence on behalf of another client method :enter_client when anonymous and no client_id and another invalid client_id after authentication throws an exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.497433"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938758a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938758a0&gt;
Shared Example Group: &quot;a presence on behalf of another client method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1364
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:438:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:439:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:454:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method presence enter_client : raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.764809"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936d1008&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936d1008&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:83:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:82:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method presence enter_client : raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.039373"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093608888&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093608888&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:65:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method presence enter_client : raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.300955"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c604e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c604e8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:116:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:115:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.269355"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ae2458&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ae2458&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:302:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:301:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method presence enter_client : raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.623959"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939d1af0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939d1af0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:99:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:98:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="35.538369"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b8db8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b8db8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:295:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:294:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="35.285252"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409368d178&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409368d178&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:131:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="34.978085"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093447878&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093447878&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:320:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:319:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.983014"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a00608&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a00608&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:310:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:309:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.814842"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b21860&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b21860&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:333:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:332:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="33.788715"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938e2d60&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938e2d60&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:183:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="33.832189"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936fd108&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936fd108&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:143:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="34.604689"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409363e370&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409363e370&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:153:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.673532"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c932d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c932d0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:168:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.497842"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091fab158&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091fab158&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:241:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:240:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.302143"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939fb940&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939fb940&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:221:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:220:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="34.029334"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c3498&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c3498&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:211:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:210:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.329836"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093693168&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093693168&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:195:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:231:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:230:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.470167"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e0f8e8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e0f8e8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.722641"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b806d0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b806d0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="37.171126"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093901cd8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093901cd8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol entering/updating/leaving presence state on behalf of another client_id #enter_client it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="36.797772"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936b8df0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936b8df0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:1295:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:250:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1363
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #sync_complete? and SYNC flags (#RTP1) when attaching to a channel without any members present sync_complete? is true, no members are received and the presence channel is synced (#RTP1)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.174857"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093430c90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093430c90&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:710:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #sync_complete? and SYNC flags (#RTP1) when attaching to a channel with members present sync_complete? is false, there is a presence flag, and the presence channel is subsequently synced (#RTP1)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.142345"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929ed170&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929ed170&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:739:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter data attribute when provided as argument option to #enter changes to value provided in #leave" file="./spec/acceptance/realtime/presence_spec.rb" time="34.398270"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b084c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b084c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1060:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter without necessary capabilities to join presence calls the Deferrable errback on capabilities failure" file="./spec/acceptance/realtime/presence_spec.rb" time="33.141012"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093893a58&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093893a58&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1095:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1095:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1097:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1098:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1101:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter message #connection_id matches the current client connection_id" file="./spec/acceptance/realtime/presence_spec.rb" time="34.502345"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936dd678&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936dd678&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:24:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1082:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method presence enter : raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="35.238124"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409360fa20&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409360fa20&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:116:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:115:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method presence enter : raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.577188"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c453a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c453a0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:65:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method presence enter : raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="35.527268"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b63490&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b63490&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:99:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:98:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="35.689275"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409396bf20&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409396bf20&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:131:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="34.384351"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093731700&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093731700&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:295:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:294:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="35.460889"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093654940&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093654940&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:302:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:301:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="35.420082"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d25888&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d25888&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:310:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:309:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="35.220921"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923e2000&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923e2000&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:320:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:319:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method presence enter : raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="33.825114"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a35b90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a35b90&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:83:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:82:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="34.414054"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c1468&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c1468&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:197:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:241:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:240:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.013279"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409368ab08&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409368ab08&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:197:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:221:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:220:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="34.567062"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e8b8a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e8b8a8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:197:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:211:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:210:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.089564"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409293caf0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409293caf0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:197:in `register_presence_and_check_data&apos;
./spec/acceptance/realtime/presence_spec.rb:231:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:230:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.078455"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a855f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a855f0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:333:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:58:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:332:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="35.222019"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c27a0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c27a0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.704278"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093633e20&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093633e20&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.199010"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a899a8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a899a8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.658076"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a5da00&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a5da00&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.111494"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093752e50&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093752e50&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:168:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="34.280174"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093676018&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093676018&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:143:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="34.969260"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d958e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d958e0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:183:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #enter it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="33.853789"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409281ad70&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409281ad70&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1108
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:153:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol server-initiated sync with a single SYNC page is initiated and completed with a single SYNC message (and no channelSerial) (#RTP18a, #RTP18c) " file="./spec/acceptance/realtime/presence_spec.rb" time="34.970220"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a184c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a184c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2286:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol server-initiated sync when members exist in the PresenceMap before a SYNC completes removes the members that are no longer present (#RTP19)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.837898"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937bae38&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937bae38&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2333:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol server-initiated sync with multiple SYNC pages is initiated with a SYNC message and completed with a later SYNC message with no cursor value part of the channelSerial (#RTP18a, #RTP18b) " file="./spec/acceptance/realtime/presence_spec.rb" time="34.243601"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936805e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936805e0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2237:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol client_id with ASCII_8BIT in channel options is converted into UTF_8" file="./spec/acceptance/realtime/presence_spec.rb" time="34.424158"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e2b278&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e2b278&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:2019:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:2019:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2022:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol client_id with ASCII_8BIT in connection set up is converted into UTF_8" file="./spec/acceptance/realtime/presence_spec.rb" time="33.350519"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092856550&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092856550&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:2006:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:2006:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2009:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) will emit an :sync_complete event when synchronisation is complete" file="./spec/acceptance/realtime/presence_spec.rb" time="38.845715"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a37af8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a37af8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:520:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) is not synchronised when initially created" file="./spec/acceptance/realtime/presence_spec.rb" time="39.060837"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937bf618&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937bf618&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:515:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) is available once the channel is created" file="./spec/acceptance/realtime/presence_spec.rb" time="34.362412"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093684708&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093684708&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:510:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) the map is based on the member_key (connection_id &amp; client_id) ensures uniqueness from this member_key (#RTP2a)" file="./spec/acceptance/realtime/presence_spec.rb" time="33.355221"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e44fc0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e44fc0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:575:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) once server sync is complete behaves like an Enumerable allowing direct access to current members" file="./spec/acceptance/realtime/presence_spec.rb" time="34.209657"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092861680&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092861680&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:540:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) before server sync complete behaves like an Enumerable allowing direct access to current members" file="./spec/acceptance/realtime/presence_spec.rb" time="34.919133"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a362c0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a362c0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:532:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) newness is compared based on PresenceMessage#id unless synthesized when presence messages are not synthesized (events sent from clients) compares based on timestamp if either has a connectionId not part of the presence message id (#RTP2b2)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.538621"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b96c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937b96c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:608:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:608:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:625:in `allow_sync_fabricate_data_final_sync_and_assert_members&apos;
./spec/acceptance/realtime/presence_spec.rb:699:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #members map / PresenceMap (#RTP2) newness is compared based on PresenceMessage#id unless synthesized when presence messages are synthesized compares based on timestamp if either has a connectionId not part of the presence message id (#RTP2b1)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.028797"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409367a870&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409367a870&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:608:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:608:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:625:in `allow_sync_fabricate_data_final_sync_and_assert_members&apos;
./spec/acceptance/realtime/presence_spec.rb:682:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data encrypts presence message data" file="./spec/acceptance/realtime/presence_spec.rb" time="33.906177"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d77570&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d77570&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2048:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #subscribe emits decrypted enter events" file="./spec/acceptance/realtime/presence_spec.rb" time="33.628831"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923bcb98&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640923bcb98&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2067:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #subscribe emits previously set data for leave events" file="./spec/acceptance/realtime/presence_spec.rb" time="33.626067"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939d2db0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939d2db0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2093:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #subscribe emits decrypted update events" file="./spec/acceptance/realtime/presence_spec.rb" time="34.024816"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937490a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937490a8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2079:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data REST #get returns a list of members with decrypted data" file="./spec/acceptance/realtime/presence_spec.rb" time="33.787321"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409366ce78&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409366ce78&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2123:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data when cipher settings do not match publisher emits an error when cipher does not match and presence data cannot be decoded" file="./spec/acceptance/realtime/presence_spec.rb" time="33.315746"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d092c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d092c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2136:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2152:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data when cipher settings do not match publisher delivers an unencoded presence message left with encoding value" file="./spec/acceptance/realtime/presence_spec.rb" time="34.268696"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ae5ec8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ae5ec8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol encoding and decoding of presence message data #get returns a list of members with decrypted data" file="./spec/acceptance/realtime/presence_spec.rb" time="35.475887"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093959258&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093959258&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2038:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2109:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol connection failure mid-way through a large member sync resumes the SYNC operation (#RTP3)" file="./spec/acceptance/realtime/presence_spec.rb" time="33.931248"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372bf08&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372bf08&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2200:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2199:in `times&apos;
./spec/acceptance/realtime/presence_spec.rb:2199:in `each&apos;
./spec/acceptance/realtime/presence_spec.rb:2199:in `map&apos;
./spec/acceptance/realtime/presence_spec.rb:2199:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get fails if the connection is DETACHED (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.374912"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409363d6c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409363d6c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1600:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get catches exceptions in the provided method block" file="./spec/acceptance/realtime/presence_spec.rb" time="34.405874"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b69558&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b69558&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1557:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="34.021449"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b35158&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b35158&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1545:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get returns the list of members and waits for SYNC to complete by default (#RTP11a)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.211166"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938ca7d8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938ca7d8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1776:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="35.171531"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936dcc28&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936dcc28&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1550:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get implicitly attaches the channel (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.845063"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935fb340&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935fb340&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1565:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get fails if the connection is FAILED (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.403551"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092acff98&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092acff98&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1617:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get returns the current members on the channel (#RTP11a)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.609888"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ad1bd0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ad1bd0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1701:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get filters by connection_id option if provided (#RTP11c3)" file="./spec/acceptance/realtime/presence_spec.rb" time="36.029450"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093809d30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093809d30&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1718:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get filters by client_id option if provided (#RTP11c2)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.055839"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409369e8b0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409369e8b0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1740:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get does not wait for SYNC to complete if :wait_for_sync option is false (#RTP11c1)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.249950"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e9e520&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e9e520&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1764:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when a member enters and the presence map is updated adds the member as being :present (#RTP2d)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.031215"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409286c850&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409286c850&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1804:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get with lots of members on different clients returns a complete list of members on all clients" file="./spec/acceptance/realtime/presence_spec.rb" time="35.640794"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939cfd68&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939cfd68&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1818:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1818:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1825:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:94:in `wait_until&apos;
./spec/acceptance/realtime/presence_spec.rb:1825:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get during a sync when :wait_for_sync is true fails if the connection becomes FAILED (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.683529"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936e7ab0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936e7ab0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1635:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1635:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1643:in `block (3 levels) in connect_members_deferrables&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get during a sync when :wait_for_sync is true fails if the channel becomes detached (#RTP11b)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.776598"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d737e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d737e0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:1635:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:1635:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1643:in `block (3 levels) in connect_members_deferrables&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when a member enters and then leaves has no members" file="./spec/acceptance/realtime/presence_spec.rb" time="34.954792"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b84528&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b84528&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1789:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when the channel is SUSPENDED with wait_for_sync: false returns the current PresenceMap and does not wait for the channel to change to the ATTACHED state (#RTP11d)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.219013"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394d9d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394d9d0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1588:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #get when the channel is SUSPENDED with wait_for_sync: true results in an error with @code@ @91005@ and a @message@ stating that the presence state is out of sync (#RTP11d)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.262063"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370a218&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370a218&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1575:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client maintains a copy of the member map for any member that shares this connection&apos;s connection ID (#RTP17)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.232561"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093613f58&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093613f58&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2438:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client #RTP17b updates presence members on leave" file="./spec/acceptance/realtime/presence_spec.rb" time="34.591313"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b08168&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b08168&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:24:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:25:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2466:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client #RTP17b does no update presence members on fabricated leave" file="./spec/acceptance/realtime/presence_spec.rb" time="35.218301"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ad1630&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093ad1630&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:24:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:25:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2491:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client when a channel becomes attached again when re-entering a client automatically, if the re-enter fails for any reason should emit an ErrorInfo with error code 91004 (#RTP5c3)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.882358"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e48c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e48c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:2612:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:2612:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2615:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol local PresenceMap for presence members entered by this client when a channel becomes attached again and the resume flag is false and the presence flag is false immediately resends all local presence members (#RTP5c2, #RTP19a)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.983576"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409368e050&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409368e050&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2543:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel emits :present for each member" file="./spec/acceptance/realtime/presence_spec.rb" time="35.515853"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d97708&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d97708&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:789:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel #get with :wait_for_sync option set to false (#RTP11c1) it does not wait for sync" file="./spec/acceptance/realtime/presence_spec.rb" time="36.971683"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b742e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b742e0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1008:in `block (10 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel #get by default waits until sync is complete (#RTP11c1)" file="./spec/acceptance/realtime/presence_spec.rb" time="35.252563"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938e0920&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938e0920&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:991:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member leaves before the SYNC operation is complete does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get (#RTP2f)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.700064"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936d38f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936d38f8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:938:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member leaves before the SYNC operation is complete ignores presence events with timestamps / identifiers prior to the current :present event in the MembersMap (#RTP2c)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.847164"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935e92a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935e92a8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:892:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member leaves before the SYNC operation is complete emits :leave immediately as the member leaves and cleans up the ABSENT member after (#RTP2f, #RTP2g)" file="./spec/acceptance/realtime/presence_spec.rb" time="33.778371"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409293edc8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409293edc8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:844:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol 101 existing (present) members on a channel (2 SYNC pages) requiring at least 2 SYNC ProtocolMessages when a client attaches to the presence channel and a member enters before the SYNC operation is complete emits a :enter immediately and the member is :present once the sync is complete (#RTP2g)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.703513"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939cdea0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939cdea0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:771:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:805:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol leaving expect :left event with client data from enter event" file="./spec/acceptance/realtime/presence_spec.rb" time="34.324215"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372d8f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372d8f8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2180:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol leaving expect :left event once underlying connection is closed" file="./spec/acceptance/realtime/presence_spec.rb" time="33.663902"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093629920&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093629920&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2170:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol :left event emits the data defined in update" file="./spec/acceptance/realtime/presence_spec.rb" time="34.679933"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bd2f08&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bd2f08&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:24:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1276:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol :left event emits the data defined in enter" file="./spec/acceptance/realtime/presence_spec.rb" time="34.489302"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093aa9dd8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093aa9dd8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:24:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1263:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update updates the data to nil if :data argument is not provided (assumes nil value)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.746888"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e1920&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e1920&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1150:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update updates the data if :data argument provided" file="./spec/acceptance/realtime/presence_spec.rb" time="35.113184"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409367e308&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409367e308&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1138:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update without previous #enter automatically enters" file="./spec/acceptance/realtime/presence_spec.rb" time="34.390195"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d31318&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d31318&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1113:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/presence_spec.rb" time="34.719523"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b34be0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b34be0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:294:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method presence update : raise an exception if the channel becomes failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.791009"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938901f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938901f0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:115:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method catches exceptions in the provided method block and logs them to the logger" file="./spec/acceptance/realtime/presence_spec.rb" time="34.234901"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936b7658&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936b7658&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:319:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method presence update : raise an exception if the channel is failed" file="./spec/acceptance/realtime/presence_spec.rb" time="34.731974"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093444a10&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093444a10&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:98:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method calls the Deferrable callback on success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.543793"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640922d3f10&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640922d3f10&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:309:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method presence update : raise an exception if the channel becomes detached" file="./spec/acceptance/realtime/presence_spec.rb" time="34.438668"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093921ce0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093921ce0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:82:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method presence update : raise an exception if the channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="35.093268"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936ebca0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936ebca0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:64:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method allows a block to be passed in that is executed upon success" file="./spec/acceptance/realtime/presence_spec.rb" time="34.169812"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935e26d8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935e26d8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:301:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method implicitly attaches the channel" file="./spec/acceptance/realtime/presence_spec.rb" time="38.345076"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092986470&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092986470&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:131:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type Float raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="38.456450"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409391b908&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409391b908&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:269:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type Integer raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.227070"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936888a8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936888a8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:260:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type Boolean raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="34.735114"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b1f020&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b1f020&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:278:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with unsupported data payload content type False raises an UnsupportedDataType 40013 exception" file="./spec/acceptance/realtime/presence_spec.rb" time="33.641913"><failure message="expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939381c0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::UnsupportedDataType, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939381c0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:252:in `presence_action&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (7 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/presence_spec.rb:287:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method if connection fails before success calls the Deferrable errback if channel is detached" file="./spec/acceptance/realtime/presence_spec.rb" time="35.499900"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936baba0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936baba0&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:332:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state connected publishes the message" file="./spec/acceptance/realtime/presence_spec.rb" time="35.501120"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ebf900&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092ebf900&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:183:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state disconnected fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.001305"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409379d0b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409379d0b8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:165:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:168:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state initialized fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.825558"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938ca1e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938ca1e8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:143:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method when :queue_messages client option is false and connection state connecting fails the deferrable" file="./spec/acceptance/realtime/presence_spec.rb" time="35.875432"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936c3318&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936c3318&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:139:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:153:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type String is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.355319"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640934451b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640934451b8&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:230:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type JSON Object (Hash) is encoded and decoded to the same hash" file="./spec/acceptance/realtime/presence_spec.rb" time="34.558732"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b78340&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b78340&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:210:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type Binary is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.202650"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938a0028&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938a0028&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:240:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update it should behave like a public presence method with supported data payload content type JSON Array is encoded and decoded to the same Array" file="./spec/acceptance/realtime/presence_spec.rb" time="35.204167"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936ba538&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936ba538&gt;
Shared Example Group: &quot;a public presence method&quot; called from ./spec/acceptance/realtime/presence_spec.rb:1161
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:47:in `setup_test&apos;
./spec/acceptance/realtime/presence_spec.rb:220:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #update when ENTERED has no effect on the state" file="./spec/acceptance/realtime/presence_spec.rb" time="35.055776"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e90f88&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092e90f88&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1123:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #unsubscribe with no arguments removes the callback for all presence events" file="./spec/acceptance/realtime/presence_spec.rb" time="34.498663"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b40850&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b40850&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1936:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol #unsubscribe with event name removes the callback for specified presence event" file="./spec/acceptance/realtime/presence_spec.rb" time="34.908667"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093877d30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093877d30&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1954:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol when attached (but not present) on a presence channel with an anonymous client (no client ID) maintains state as other clients enter and leave the channel (#RTP2e)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.740119"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936a42b0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936a42b0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:480:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol when the client does not have presence subscribe privileges but is present on the channel receives presence updates for all presence events generated by the current connection and the presence map is kept up to date (#RTP17a)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.730291"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d9d018&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d9d018&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:2387:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:2387:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2391:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol REST #get returns current members" file="./spec/acceptance/realtime/presence_spec.rb" time="34.469214"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b12f40&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b12f40&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1973:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol REST #get returns no members once left" file="./spec/acceptance/realtime/presence_spec.rb" time="34.495734"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938118a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938118a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:1989:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the FAILED state clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.782651"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409367fbb8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409367fbb8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:2686:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:2686:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2689:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the SUSPENDED state maintains the PresenceMap and only publishes presence event changes since the last attached state (#RTP5f)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.857658"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092cbe200&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092cbe200&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:23:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2754:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the ATTACHED state (RTP5b) all queued presence messages are sent" file="./spec/acceptance/realtime/presence_spec.rb" time="34.027280"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394dcc8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409394dcc8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:21:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2669:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_spec" name="Ably::Realtime::Presence using JSON protocol channel state side effects (RTP5) channel transitions to the DETACHED state clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)" file="./spec/acceptance/realtime/presence_spec.rb" time="34.293749"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409358dd90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409358dd90&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/presence_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_spec.rb:2716:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:94:in `wait_until&apos;
./spec/acceptance/realtime/presence_spec.rb:2716:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol has immutable options" file="./spec/acceptance/rest/auth_spec.rb" time="0.001612"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) updates the persisted auth options that are then used for subsequent authorize requests" file="./spec/acceptance/rest/auth_spec.rb" time="0.686055"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) updates the persisted token params that are then used for subsequent authorize requests" file="./spec/acceptance/rest/auth_spec.rb" time="0.274594"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) query_time: true with authorize only queries the server time once and then works out the offset, query_time option is never persisted (#RSA10k)" file="./spec/acceptance/rest/auth_spec.rb" time="0.366989"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit token string that expires and a lambda for the :auth_callback option to provide a means to renew the token calls the lambda once the token has expired and the new token is used" file="./spec/acceptance/rest/auth_spec.rb" time="4.100461"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) when called for the first time since the client has been instantiated issues a new token every time (#RSA10a)" file="./spec/acceptance/rest/auth_spec.rb" time="0.072216"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) when called for the first time since the client has been instantiated returns a valid token" file="./spec/acceptance/rest/auth_spec.rb" time="0.074826"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) when called for the first time since the client has been instantiated passes all auth_options and token_params to #request_token" file="./spec/acceptance/rest/auth_spec.rb" time="0.001585"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument updates defaults when present and all previous configured AuthOptions are discarded (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="2.655073"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument uses AuthOptions#query_time for this request and will not query_time for subsequent requests (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="2.997322"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument has no effect on the defaults when null and AuthOptions defaults remain the same" file="./spec/acceptance/rest/auth_spec.rb" time="2.653277"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument uses AuthOptions#query_time for this request and will query_time again if provided subsequently" file="./spec/acceptance/rest/auth_spec.rb" time="2.861175"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) AuthOptions argument updates Auth#options attribute with an immutable hash" file="./spec/acceptance/rest/auth_spec.rb" time="2.578648"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option calls the lambda" file="./spec/acceptance/rest/auth_spec.rb" time="0.076914"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.076184"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option for every subsequent #request_token without a :auth_callback lambda calls the originally provided block" file="./spec/acceptance/rest/auth_spec.rb" time="0.343045"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with a lambda for the :auth_callback option for every subsequent #request_token with a provided block does not call the originally provided lambda and calls the new #request_token :auth_callback lambda" file="./spec/acceptance/rest/auth_spec.rb" time="0.150094"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument uses TokenParams#timestamp for this request but obtains a new timestamp for subsequence requests (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="0.591962"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument updates defaults when present and all previous configured TokenParams are discarded (#RSA10g)" file="./spec/acceptance/rest/auth_spec.rb" time="0.151219"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument has no effect on the defaults when null and TokenParam defaults remain the same" file="./spec/acceptance/rest/auth_spec.rb" time="0.522497"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) TokenParams argument updates Auth#token_params attribute with an immutable hash" file="./spec/acceptance/rest/auth_spec.rb" time="0.147415"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) query_time: true ClientOption when instanced only queries the server time once and then works out the offset, query_time option is never persisted (#RSA10k)" file="./spec/acceptance/rest/auth_spec.rb" time="0.396629"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with previous authorisation requests a new token if token is expired" file="./spec/acceptance/rest/auth_spec.rb" time="0.074037"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with previous authorisation issues a new token every time #authorize is called" file="./spec/acceptance/rest/auth_spec.rb" time="0.144468"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit ClientOptions client_id and an incompatible client_id in a TokenDetails object passed to the auth callback rejects a TokenDetails object with an incompatible client_id and raises an exception" file="./spec/acceptance/rest/auth_spec.rb" time="0.073901"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit ClientOptions client_id and a token string without any retrievable client_id rejects a TokenRequests object with an incompatible client_id and raises an exception" file="./spec/acceptance/rest/auth_spec.rb" time="0.256100"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #authorize (#RSA10, #RSA10j) with an explicit ClientOptions client_id and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception rejects a TokenRequests object with an incompatible client_id and raises an exception" file="./spec/acceptance/rest/auth_spec.rb" time="0.071840"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when :client_id is provided in a token #client_id contains the client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.075319"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when token does not expire for the next 2 hours should not request for the new token (#RSA4b1)" file="./spec/acceptance/rest/auth_spec.rb" time="0.481293"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option cannot be renewed automatically" file="./spec/acceptance/rest/auth_spec.rb" time="0.071333"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option disallows publishing on unspecified capability channels" file="./spec/acceptance/rest/auth_spec.rb" time="0.313086"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option authenticates successfully using the provided :token" file="./spec/acceptance/rest/auth_spec.rb" time="0.162372"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option fails if timestamp is invalid" file="./spec/acceptance/rest/auth_spec.rb" time="0.067202"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication with :token option and the token expires should indicate an error and not retry the request (#RSA4a)" file="./spec/acceptance/rest/auth_spec.rb" time="34.619235"><failure message="Invalid port number: &quot;sandbox-rest.ably.io&quot;" type="Addressable::URI::InvalidURIError">Failure/Error:
  stub_request(:post, &quot;https://#{environment}-rest.ably.io/channels/foo/publish&quot;).
    to_return(status: 401, body: token_expired.to_json, headers: { &apos;Content-Type&apos; =&gt; &apos;application/json&apos; })

Addressable::URI::InvalidURIError:
  Invalid port number: &quot;sandbox-rest.ably.io&quot;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:1418:in `port=&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:855:in `block in initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:2399:in `defer_validation&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:847:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:165:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:165:in `parse&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:243:in `heuristic_parse&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:13:in `block in &lt;class:URI&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:29:in `heuristic_parse&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:17:in `block in &lt;class:URI&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:35:in `normalize_uri&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:123:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:90:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:90:in `create_uri_pattern&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:21:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_stub.rb:9:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_stub.rb:9:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/api.rb:9:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/api.rb:9:in `stub_request&apos;
./spec/acceptance/rest/auth_spec.rb:1102:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when token expires automatically renews the token (#RSA4b)" file="./spec/acceptance/rest/auth_spec.rb" time="2.918209"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol using token authentication when token expires fails if the token renewal fails (#RSA4b)" file="./spec/acceptance/rest/auth_spec.rb" time="42.791781"><failure message="Invalid port number: &quot;sandbox-rest.ably.io&quot;" type="Addressable::URI::InvalidURIError">Failure/Error:
  stub_request(:post, &quot;https://#{environment}-rest.ably.io/keys/#{TestApp.instance.key_name}/requestToken&quot;).
      to_return(status: 401, body: token_expired_response.to_json, headers: { &apos;Content-Type&apos; =&gt; &apos;application/json&apos; })

Addressable::URI::InvalidURIError:
  Invalid port number: &quot;sandbox-rest.ably.io&quot;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:1418:in `port=&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:855:in `block in initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:2399:in `defer_validation&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:847:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:165:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:165:in `parse&apos;
./vendor/bundle/ruby/2.7.0/gems/addressable-2.8.7/lib/addressable/uri.rb:243:in `heuristic_parse&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:13:in `block in &lt;class:URI&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:29:in `heuristic_parse&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:17:in `block in &lt;class:URI&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/util/uri.rb:35:in `normalize_uri&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:123:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:90:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:90:in `create_uri_pattern&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_pattern.rb:21:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_stub.rb:9:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/request_stub.rb:9:in `initialize&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/api.rb:9:in `new&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/api.rb:9:in `stub_request&apos;
./spec/acceptance/rest/auth_spec.rb:1161:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT authenticates correctly using the JWT token generated by the echo server" file="./spec/acceptance/rest/auth_spec.rb" time="0.527298"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT when the token requested is returned with application/jwt content type authenticates correctly and pulls stats" file="./spec/acceptance/rest/auth_spec.rb" time="0.483402"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT when the JWT embeds an Ably token authenticates correctly using the embedded token" file="./spec/acceptance/rest/auth_spec.rb" time="0.625858"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using JWT when the JWT embeds an Ably token and the requested token is encrypted authenticates correctly using the embedded token" file="./spec/acceptance/rest/auth_spec.rb" time="0.633226"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token returns a valid TokenDetails object in the expected format with valid issued and expires attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.082582"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token creates a TokenRequest automatically and sends it to Ably to obtain a token" file="./spec/acceptance/rest/auth_spec.rb" time="0.004734"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :nonce overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004409"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :query_time option queries the server for the time (#RSA10k)" file="./spec/acceptance/rest/auth_spec.rb" time="0.147142"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :key option key_name is used in request and signing uses key_secret" file="./spec/acceptance/rest/auth_spec.rb" time="0.004688"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token persisted option of token params when omitted returns a literal token" file="./spec/acceptance/rest/auth_spec.rb" time="0.071012"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token persisted option of token params when set to true returns a token with a short token ID that is used to look up the token details" file="./spec/acceptance/rest/auth_spec.rb" time="0.534348"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :timestamp overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004163"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :client_id overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.003782"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with auth_option :client_id returns a token with the client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.077858"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :ttl overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.004327"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using :get :auth_method and query params in the URL requests a token using a GET request with provided headers, and merges client_id into auth_params and existing URL querystring into new URL querystring" file="./spec/acceptance/rest/auth_spec.rb" time="0.009447"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using unspecified :auth_method requests a token using a GET request with provided headers, and merges client_id into auth_params" file="./spec/acceptance/rest/auth_spec.rb" time="0.010312"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using unspecified :auth_method with provided token_params merges provided token_params with existing auth_params and client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.008760"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using unspecified :auth_method with provided auth option auth_params and auth_headers replaces any preconfigured auth_params" file="./spec/acceptance/rest/auth_spec.rb" time="0.008309"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option merging with existing configured auth options using :post :auth_method requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data" file="./spec/acceptance/rest/auth_spec.rb" time="0.009757"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response is invalid 500 raises ServerError" file="./spec/acceptance/rest/auth_spec.rb" time="0.008599"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response is invalid XML raises InvalidResponseBody" file="./spec/acceptance/rest/auth_spec.rb" time="0.008440"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request returns a valid token generated from the token request" file="./spec/acceptance/rest/auth_spec.rb" time="0.013854"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request requests a token from :auth_url using an HTTP GET request" file="./spec/acceptance/rest/auth_spec.rb" time="0.009740"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request with :headers requests a token from :auth_url with the HTTP headers set" file="./spec/acceptance/rest/auth_spec.rb" time="0.010146"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request with POST requests a token from :auth_url using an HTTP POST instead of the default GET" file="./spec/acceptance/rest/auth_spec.rb" time="0.009715"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a valid token request with :query_params requests a token from :auth_url with the :query_params" file="./spec/acceptance/rest/auth_spec.rb" time="0.010798"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is text/plain content type and a token string returns TokenDetails created from the token JSON" file="./spec/acceptance/rest/auth_spec.rb" time="0.008274"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :auth_url option when response from :auth_url is a token details object returns TokenDetails created from the token JSON" file="./spec/acceptance/rest/auth_spec.rb" time="0.009385"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :client_id returns a token with the client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.071977"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with token_param :capability overrides default and uses camelCase notation for attributes" file="./spec/acceptance/rest/auth_spec.rb" time="0.005215"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a Token string uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.073471"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object calls the lambda when authenticating to obtain the request token" file="./spec/acceptance/rest/auth_spec.rb" time="0.003921"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.001220"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object when authorized sets Client#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.002607"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails JSON object when authorized sets Auth#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.002152"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.072002"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest calls the Proc with token_params when authenticating to obtain the request token" file="./spec/acceptance/rest/auth_spec.rb" time="0.078893"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest when authorized sets Client#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.144154"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenRequest when authorized sets Auth#client_id to the new token&apos;s client_id" file="./spec/acceptance/rest/auth_spec.rb" time="0.158703"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with a Proc for the :auth_callback option that returns a TokenDetails object uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/rest/auth_spec.rb" time="0.075152"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token without :query_time option does not query the server for the time" file="./spec/acceptance/rest/auth_spec.rb" time="0.078250"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #request_token with :key_name &amp; :key_secret options key_name is used in request and signing uses key_secret" file="./spec/acceptance/rest/auth_spec.rb" time="0.005485"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using a :key and basic auth #key attribute contains the key string" file="./spec/acceptance/rest/auth_spec.rb" time="0.000742"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using a :key and basic auth #using_basic_auth? is true" file="./spec/acceptance/rest/auth_spec.rb" time="0.000773"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol when using a :key and basic auth #using_token_auth? is false" file="./spec/acceptance/rest/auth_spec.rb" time="0.000912"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token with a client_id is true" file="./spec/acceptance/rest/auth_spec.rb" time="0.074151"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token with no client_id (anonymous) is true" file="./spec/acceptance/rest/auth_spec.rb" time="0.076440"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token with a wildcard client_id (anonymous) is false" file="./spec/acceptance/rest/auth_spec.rb" time="0.076241"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token request with a client_id is not true as identification is not confirmed until authenticated" file="./spec/acceptance/rest/auth_spec.rb" time="0.001187"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token request with a client_id after authentication is true as identification is completed during implicit authentication" file="./spec/acceptance/rest/auth_spec.rb" time="0.178759"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using a token auth string for a token with a client_id is false as identification is not possible from an opaque token string" file="./spec/acceptance/rest/auth_spec.rb" time="0.074039"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #client_id_validated? when using basic auth is false as basic auth users do not have an identity" file="./spec/acceptance/rest/auth_spec.rb" time="0.001010"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request specifies no TTL (#RSA5)" file="./spec/acceptance/rest/auth_spec.rb" time="0.000927"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request returns a TokenRequest that can be passed to a client that can use it for authentication without an API key" file="./spec/acceptance/rest/auth_spec.rb" time="0.075501"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request specifies no capability (#RSA6)" file="./spec/acceptance/rest/auth_spec.rb" time="0.001289"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request returns a TokenRequest object" file="./spec/acceptance/rest/auth_spec.rb" time="0.001048"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request uses the key name from the client" file="./spec/acceptance/rest/auth_spec.rb" time="0.000992"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when specifying capability overrides the default" file="./spec/acceptance/rest/auth_spec.rb" time="0.004621"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when specifying capability uses these capabilities when Ably issues an actual token" file="./spec/acceptance/rest/auth_spec.rb" time="0.267187"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with token param :ttl overrides default" file="./spec/acceptance/rest/auth_spec.rb" time="0.001244"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with token param :nonce overrides default" file="./spec/acceptance/rest/auth_spec.rb" time="0.001033"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when required fields are missing should raise an exception if key name is missing" file="./spec/acceptance/rest/auth_spec.rb" time="0.000856"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request when required fields are missing should raise an exception if key secret is missing" file="./spec/acceptance/rest/auth_spec.rb" time="0.000843"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with additional invalid attributes are ignored" file="./spec/acceptance/rest/auth_spec.rb" time="0.001079"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired uses the Token expiry buffer default + 10s to allow for a token request in flight" file="./spec/acceptance/rest/auth_spec.rb" time="0.000965"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request signing generates a valid HMAC" file="./spec/acceptance/rest/auth_spec.rb" time="0.000977"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request signing lexicographic ordering of channels and operations HMAC is lexicographic ordered and thus the HMAC is identical" file="./spec/acceptance/rest/auth_spec.rb" time="0.000922"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request signing lexicographic ordering of channels and operations is valid when used for authentication" file="./spec/acceptance/rest/auth_spec.rb" time="0.072076"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request with token param :client_id overrides default" file="./spec/acceptance/rest/auth_spec.rb" time="0.001147"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request the nonce is at least 16 characters" file="./spec/acceptance/rest/auth_spec.rb" time="0.000924"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request the nonce is unique for every request" file="./spec/acceptance/rest/auth_spec.rb" time="0.004696"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request timestamp attribute is a Time object in Ruby and is set to the local time" file="./spec/acceptance/rest/auth_spec.rb" time="0.001001"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request timestamp attribute with :query_time auth_option queries the server for the timestamp" file="./spec/acceptance/rest/auth_spec.rb" time="0.001163"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol #create_token_request timestamp attribute with :timestamp option uses the provided timestamp in the token request" file="./spec/acceptance/rest/auth_spec.rb" time="0.000813"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol deprecated #authorise logs a deprecation warning (#RSA10l)" file="./spec/acceptance/rest/auth_spec.rb" time="0.072921"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol deprecated #authorise returns a valid token (#RSA10l)" file="./spec/acceptance/rest/auth_spec.rb" time="0.073423"></testcase>
<testcase classname="spec.acceptance.rest.auth_spec" name="Ably::Auth using JSON protocol before #authorize has been called has no current_token_details" file="./spec/acceptance/rest/auth_spec.rb" time="0.001107"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using shortcut method #channel on the client object behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.000982"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using shortcut method #channel on the client object behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.000866"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using #get method on client#channels behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.000857"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using #get method on client#channels behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.000871"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol #set_options (#RTL16) updates channel&apos;s options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001092"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol #set_options (#RTL16) when providing Ably::Models::ChannelOptions object updates channel&apos;s options" file="./spec/acceptance/rest/channels_spec.rb" time="0.001081"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol accessing an existing channel object with different options overrides the existing channel options and returns the channel object (RSN3c)" file="./spec/acceptance/rest/channels_spec.rb" time="0.001452"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol accessing an existing channel object without specifying any channel options returns the existing channel without modifying the channel options" file="./spec/acceptance/rest/channels_spec.rb" time="0.000934"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using undocumented array accessor [] method on client#channels behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.004686"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using undocumented array accessor [] method on client#channels behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.000981"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using a frozen channel name behaves like a channel returns a channel object" file="./spec/acceptance/rest/channels_spec.rb" time="0.000819"></testcase>
<testcase classname="spec.acceptance.rest.channels_spec" name="Ably::Rest::Channels using JSON protocol using a frozen channel name behaves like a channel returns channel object and passes the provided options" file="./spec/acceptance/rest/channels_spec.rb" time="0.000903"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol without encryption with JSON data stringifies the JSON and sets the encoding attribute to &quot;json&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001937"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol without encryption with UTF-8 data does not apply any encoding" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001590"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol without encryption with binary data applies a base64 encoding and sets the encoding attribute to &quot;base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001691"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol with encryption with binary data applies cipher and base64 encoding and sets the encoding attribute to &quot;cipher+aes-128-cbc/base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002221"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol with encryption with UTF-8 data applies utf-8, cipher and base64 encodings and sets the encoding attribute to &quot;utf-8/cipher+aes-128-cbc/base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002213"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with text transport protocol with encryption with JSON data applies json, utf-8, cipher and base64 encoding and sets the encoding attribute to &quot;json/utf-8/cipher+aes-128-cbc/base64&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002255"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol with encryption with UTF-8 data applies utf-8 and cipher encoding and sets the encoding attribute to &quot;utf-8/cipher+aes-128-cbc&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002274"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol with encryption with binary data applies cipher encoding and sets the encoding attribute to &quot;cipher+aes-128-cbc&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002126"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol with encryption with JSON data applies json, utf-8 and cipher encoding and sets the encoding attribute to &quot;json/utf-8/cipher+aes-128-cbc&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.002255"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol without encryption with binary data does not apply any encoding" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001509"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol without encryption with JSON data stringifies the JSON and sets the encoding attribute to &quot;json&quot;" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001652"></testcase>
<testcase classname="spec.acceptance.rest.encoders_spec" name="Ably::Models::MessageEncoders with binary transport protocol without encryption with UTF-8 data does not apply any encoding" file="./spec/acceptance/rest/encoders_spec.rb" time="0.001614"></testcase>
<testcase classname="spec.acceptance.realtime.presence_history_spec" name="Ably::Realtime::Presence history using JSON protocol ensures REST presence history message IDs match ProtocolMessage wrapped message and connection IDs via Realtime" file="./spec/acceptance/realtime/presence_history_spec.rb" time="34.422296"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b40260&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b40260&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_history_spec.rb:10:in `new&apos;
./spec/acceptance/realtime/presence_history_spec.rb:10:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_history_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_history_spec.rb:12:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_history_spec.rb:45:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.presence_history_spec" name="Ably::Realtime::Presence history using JSON protocol provides up to the moment presence history" file="./spec/acceptance/realtime/presence_history_spec.rb" time="34.462448"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409386a770&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409386a770&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/presence_history_spec.rb:10:in `new&apos;
./spec/acceptance/realtime/presence_history_spec.rb:10:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_history_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_history_spec.rb:12:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/presence_history_spec.rb:22:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) post supports post" file="./spec/acceptance/realtime/client_spec.rb" time="4.015009"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936a1b28&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936a1b28&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:237:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:290:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) patch supports patch" file="./spec/acceptance/realtime/client_spec.rb" time="4.015069"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093499088&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093499088&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:237:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:320:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) get returns an HttpPaginatedResponse object" file="./spec/acceptance/realtime/client_spec.rb" time="34.686290"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929fbea0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929fbea0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:241:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) get 404 request to invalid URL returns an object with 404 status code and error message" file="./spec/acceptance/realtime/client_spec.rb" time="34.610221"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b41700&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b41700&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:250:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) get paged results provides paging" file="./spec/acceptance/realtime/client_spec.rb" time="34.373444"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093853d90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093853d90&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:265:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:264:in `times&apos;
./spec/acceptance/realtime/client_spec.rb:264:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) put supports put" file="./spec/acceptance/realtime/client_spec.rb" time="4.014923"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409369f440&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409369f440&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:237:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:344:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #request (#RSC19*) delete supports delete" file="./spec/acceptance/realtime/client_spec.rb" time="4.013633"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093308318&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093308318&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:237:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:304:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #connection provides access to the Connection object" file="./spec/acceptance/realtime/client_spec.rb" time="35.667985"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929cae90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640929cae90&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:215:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS disabled with valid :key and :use_token_auth option set to true automatically authorizes on connect and generates a token" file="./spec/acceptance/realtime/client_spec.rb" time="33.609129"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b2aac8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b2aac8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:83:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS disabled and a pre-generated Token provided with the :token option connects using token auth" file="./spec/acceptance/realtime/client_spec.rb" time="34.793855"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093812ae8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093812ae8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:64:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:64:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:65:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:66:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:70:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with an invalid wildcard &quot;*&quot; :client_id raises an exception" file="./spec/acceptance/realtime/client_spec.rb" time="0.001591"></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option calls the Proc" file="./spec/acceptance/realtime/client_spec.rb" time="33.652339"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093645af8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093645af8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:105:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option uses the token request returned from the callback when requesting a new token" file="./spec/acceptance/realtime/client_spec.rb" time="34.989993"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b2f6a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b2f6a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:112:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option with a wildcard client_id token  and an explicit client_id in ClientOptions allows uses the explicit client_id in the connection" file="./spec/acceptance/realtime/client_spec.rb" time="34.903768"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b697f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b697f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:137:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:137:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:146:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option with a wildcard client_id token  and client_id omitted in ClientOptions uses the token provided clientId in the connection" file="./spec/acceptance/realtime/client_spec.rb" time="34.724335"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938a3278&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938a3278&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:137:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:137:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:162:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option when the returned token has a client_id sets Auth#client_id to the new token&apos;s client_id immediately when connecting" file="./spec/acceptance/realtime/client_spec.rb" time="35.080295"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409369d500&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409369d500&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:120:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with a Proc for the :auth_callback option when the returned token has a client_id sets Client#client_id to the new token&apos;s client_id immediately when connecting" file="./spec/acceptance/realtime/client_spec.rb" time="35.648655"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d1e6f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092d1e6f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:98:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:128:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS enabled and a pre-generated Token provided with the :token option connects using token auth" file="./spec/acceptance/realtime/client_spec.rb" time="36.004558"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e7edc0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e7edc0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:64:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:64:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:65:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:66:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:70:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization token auth with TLS enabled with valid :key and :use_token_auth option set to true automatically authorizes on connect and generates a token" file="./spec/acceptance/realtime/client_spec.rb" time="35.296222"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939b6a98&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939b6a98&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:83:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization basic auth is enabled by default with a provided :key option" file="./spec/acceptance/realtime/client_spec.rb" time="36.309468"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936e80f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936e80f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:20:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization basic auth :tls option set to false to force a plain-text connection fails to connect because a private key cannot be sent over a non-secure connection" file="./spec/acceptance/realtime/client_spec.rb" time="35.460600"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640934477d8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640934477d8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:49:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization basic auth with an invalid API key logs an entry with a help href url matching the code #TI5" file="./spec/acceptance/realtime/client_spec.rb" time="35.638860"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640927f9210&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640927f9210&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:30:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:30:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:33:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings overriden in ClientOptions disconnected_retry_timeout is updated" file="./spec/acceptance/realtime/client_spec.rb" time="35.294553"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a5a4b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093a5a4b8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:201:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings overriden in ClientOptions suspended_retry_timeout is updated" file="./spec/acceptance/realtime/client_spec.rb" time="35.365777"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409371df48&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409371df48&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:206:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings defaults suspended_retry_timeout is 30s" file="./spec/acceptance/realtime/client_spec.rb" time="34.759289"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935f5df0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640935f5df0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:192:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol initialization realtime connection settings defaults disconnected_retry_timeout is 15s" file="./spec/acceptance/realtime/client_spec.rb" time="36.103735"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092949b88&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092949b88&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:187:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #auth provides access to the Realtime::Auth object" file="./spec/acceptance/realtime/client_spec.rb" time="34.824814"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093adec18&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093adec18&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:229:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing a message implicity connects and publishes the message successfully on the provided channel" file="./spec/acceptance/realtime/client_spec.rb" time="34.547810"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093753d78&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093753d78&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:361:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:368:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing supports an array of Hash objects" file="./spec/acceptance/realtime/client_spec.rb" time="34.950562"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093620eb0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093620eb0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:361:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:420:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing supports an array of Message objects" file="./spec/acceptance/realtime/client_spec.rb" time="35.610708"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a4e9e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a4e9e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:361:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:408:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing does not result in a channel being created" file="./spec/acceptance/realtime/client_spec.rb" time="35.276917"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b23e58&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b23e58&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:380:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) publishing on a closed connection fails" file="./spec/acceptance/realtime/client_spec.rb" time="34.936862"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e3810&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937e3810&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:432:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) with more than allowed messages in a single publish rejects the publish" file="./spec/acceptance/realtime/client_spec.rb" time="34.271117"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093632a20&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093632a20&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:486:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) queue_messages ClientOption when false will reject messages on an initializing connection" file="./spec/acceptance/realtime/client_spec.rb" time="33.643049"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a87928&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a87928&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:361:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:465:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) queue_messages ClientOption when true will queue messages whilst connecting and publish once connected" file="./spec/acceptance/realtime/client_spec.rb" time="34.239734"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b2b360&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b2b360&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:361:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:448:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #publish (#TBC) with extras publishing supports extras" file="./spec/acceptance/realtime/client_spec.rb" time="33.741544"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937d42c0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937d42c0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:15:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:361:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:396:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.client_spec" name="Ably::Realtime::Client using JSON protocol #channels provides access to the Channels collection object" file="./spec/acceptance/realtime/client_spec.rb" time="34.441013"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936408a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640936408a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `new&apos;
./spec/acceptance/realtime/client_spec.rb:14:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/client_spec.rb:222:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish without adequate permissions on the channel raises a permission error when publishing" file="./spec/acceptance/rest/channel_spec.rb" time="0.396393"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish message size is exceeded (#TO3l8) should raise Ably::Exceptions::MaxMessageSizeExceeded exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.002259"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with name and data arguments publishes the message and return true indicating success" file="./spec/acceptance/rest/channel_spec.rb" time="0.338753"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with name and data arguments and additional attributes publishes the message with the attributes and return true indicating success" file="./spec/acceptance/rest/channel_spec.rb" time="0.358735"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish null attributes when data is null publishes the message without a data attribute in the payload" file="./spec/acceptance/rest/channel_spec.rb" time="0.667856"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish null attributes with neither name or data attributes publishes the message without any attributes in the payload" file="./spec/acceptance/rest/channel_spec.rb" time="0.430061"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish null attributes when name is null publishes the message without a name attribute in the payload" file="./spec/acceptance/rest/channel_spec.rb" time="0.456226"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a non ASCII channel name stubbed correctly encodes the channel name" file="./spec/acceptance/rest/channel_spec.rb" time="0.005124"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Hash objects with :name and :data attributes publishes an array of messages in one HTTP request" file="./spec/acceptance/rest/channel_spec.rb" time="0.614813"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a frozen message event name succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.508176"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with an invalid client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.073442"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.075135"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.428016"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with TokenDetails with a valid client_id with a valid client_id in the message succeeds" file="./spec/acceptance/rest/channel_spec.rb" time="0.261454"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id without having a confirmed identity with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.602043"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id without having a confirmed identity with an invalid client_id in the message succeeds in the client library but then fails when published to Ably" file="./spec/acceptance/rest/channel_spec.rb" time="0.143908"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a Token string with an implicit client_id without having a confirmed identity with a valid client_id in the message succeeds" file="./spec/acceptance/rest/channel_spec.rb" time="0.405198"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when anonymous and no client_id with an empty client_id in the message succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.433490"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when anonymous and no client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.069590"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when anonymous and no client_id with a client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.074986"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a valid client_id in the message succeeds" file="./spec/acceptance/rest/channel_spec.rb" time="0.239894"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with a wildcard client_id in the message throws an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.069952"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish identified clients when authenticated with a wildcard client_id with an empty client_id in the message succeeds and publishes without a client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.218111"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with Messages and query params should fail to publish the message (RSL1l1)" file="./spec/acceptance/rest/channel_spec.rb" time="0.095250"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a Message object publishes the message" file="./spec/acceptance/rest/channel_spec.rb" time="0.158882"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a client_id configured in the ClientOptions publishes the message without a client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.012089"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a client_id configured in the ClientOptions expects a client_id to be added by the realtime service" file="./spec/acceptance/rest/channel_spec.rb" time="0.156679"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size is 655 bytes and messages size (130 bytes) is smaller than the max_message_size publishes an array of messages in one HTTP request" file="./spec/acceptance/rest/channel_spec.rb" time="0.238854"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size is 655 bytes and messages size (177784 bytes) is bigger than the max_message_size should not publish and raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/acceptance/rest/channel_spec.rb" time="2.643193"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size and max_frame_size is not set and messages size (130 bytes) is smaller than the max_message_size publishes an array of messages in one HTTP request" file="./spec/acceptance/rest/channel_spec.rb" time="0.245322"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with an array of Message objects when max_message_size and max_frame_size is not set and messages size (177784 bytes) is bigger than the max_message_size should not publish and raise Ably::Exceptions::MaxMessageSizeExceeded" file="./spec/acceptance/rest/channel_spec.rb" time="2.655341"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a Message object and query params should fail to publish the message (RSL1l1)" file="./spec/acceptance/rest/channel_spec.rb" time="0.261946"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #publish with a frozen payload succeeds and publishes with an implicit client_id" file="./spec/acceptance/rest/channel_spec.rb" time="0.412342"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #status should return channel details status (#RSL8, #RSL8a)" file="./spec/acceptance/rest/channel_spec.rb" time="0.153226"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #presence returns a REST Presence object" file="./spec/acceptance/rest/channel_spec.rb" time="0.001072"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :start with a Time object value converts the value to milliseconds since epoch in the hisotry request" file="./spec/acceptance/rest/channel_spec.rb" time="0.004759"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :start with milliseconds since epoch value uses this value in the history request" file="./spec/acceptance/rest/channel_spec.rb" time="0.004117"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :end with a Time object value converts the value to milliseconds since epoch in the hisotry request" file="./spec/acceptance/rest/channel_spec.rb" time="0.004185"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option :end with milliseconds since epoch value uses this value in the history request" file="./spec/acceptance/rest/channel_spec.rb" time="0.004058"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history option when argument start is after end should raise an exception" file="./spec/acceptance/rest/channel_spec.rb" time="0.000902"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history returns paged history using the PaginatedResult model" file="./spec/acceptance/rest/channel_spec.rb" time="0.881739"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history returns a PaginatedResult model" file="./spec/acceptance/rest/channel_spec.rb" time="0.404288"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history returns the current message history for the channel" file="./spec/acceptance/rest/channel_spec.rb" time="0.365075"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history message IDs is unique" file="./spec/acceptance/rest/channel_spec.rb" time="0.347718"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history message timestamps are after the messages were published" file="./spec/acceptance/rest/channel_spec.rb" time="0.353446"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history limit defaults to 100" file="./spec/acceptance/rest/channel_spec.rb" time="0.623740"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history direction returns history forward if specified in the options" file="./spec/acceptance/rest/channel_spec.rb" time="0.357885"></testcase>
<testcase classname="spec.acceptance.rest.channel_spec" name="Ably::Rest::Channel using JSON protocol #history direction returns paged history backwards by default" file="./spec/acceptance/rest/channel_spec.rb" time="0.366233"></testcase>
<testcase classname="spec.acceptance.rest.time_spec" name="Ably::Rest::Client#time using JSON protocol fetching the service time should return the service time as a Time object" file="./spec/acceptance/rest/time_spec.rb" time="0.065921"></testcase>
<testcase classname="spec.acceptance.rest.time_spec" name="Ably::Rest::Client#time using JSON protocol fetching the service time with reconfigured HTTP timeout should raise a timeout exception" file="./spec/acceptance/rest/time_spec.rb" time="34.231939"><failure message="expected Ably::Exceptions::ConnectionTimeout, got #&lt;Ably::Exceptions::ConnectionError: Couldn&apos;t resolve host name (code: 80000, base exception: Faraday::ConnectionFailed) -&gt; see https://help.ably.io/error/80000 for help &lt; Couldn&apos;t resolve host name&gt; with backtrace:
  # ./lib/ably/rest/client.rb:660:in `rescue in send_request&apos;
  # ./lib/ably/rest/client.rb:598:in `send_request&apos;
  # ./lib/ably/rest/client.rb:581:in `block in raw_request&apos;
  # ./lib/ably/rest/client.rb:668:in `reauthorize_on_authorization_failure&apos;
  # ./lib/ably/rest/client.rb:580:in `raw_request&apos;
  # ./lib/ably/rest/client.rb:341:in `get&apos;
  # ./lib/ably/rest/client.rb:324:in `time&apos;
  # ./spec/acceptance/rest/time_spec.rb:20:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/rest/time_spec.rb:20:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected Ably::Exceptions::ConnectionTimeout, got #&lt;Ably::Exceptions::ConnectionError: Couldn&apos;t resolve host name (code: 80000, base exception: Faraday::ConnectionFailed) -&gt; see https://help.ably.io/error/80000 for help &lt; Couldn&apos;t resolve host name&gt; with backtrace:
    # ./lib/ably/rest/client.rb:660:in `rescue in send_request&apos;
    # ./lib/ably/rest/client.rb:598:in `send_request&apos;
    # ./lib/ably/rest/client.rb:581:in `block in raw_request&apos;
    # ./lib/ably/rest/client.rb:668:in `reauthorize_on_authorization_failure&apos;
    # ./lib/ably/rest/client.rb:580:in `raw_request&apos;
    # ./lib/ably/rest/client.rb:341:in `get&apos;
    # ./lib/ably/rest/client.rb:324:in `time&apos;
    # ./spec/acceptance/rest/time_spec.rb:20:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/rest/time_spec.rb:20:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/rest/time_spec.rb:20:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove removes match for Hash object by channel and client_id" file="./spec/acceptance/realtime/push_admin_spec.rb" time="33.847494"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove succeeds even if there is no match" file="./spec/acceptance/realtime/push_admin_spec.rb" time="33.797710"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list_channels returns a PaginatedResult object containing String objects" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.479289"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list returns a PaginatedResult object containing DeviceDetails objects" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.749226"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list supports paging" file="./spec/acceptance/realtime/push_admin_spec.rb" time="33.842743"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #list raises an exception if none of the required filters are provided" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.868037"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #save raises an exception for invalid params" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.066065"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #save saves the new client_id PushChannelSubscription Hash object" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.170774"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #save failed requests fails for invalid requests" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.805162"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove_where succeeds on no match" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.329230"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove_where removes matching client_ids" file="./spec/acceptance/realtime/push_admin_spec.rb" time="33.075216"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #channel_subscriptions #remove_where failed requests device_id and client_id filters in the same request are not supported" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.293097"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish accepts valid push data and recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.228815"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640946de900&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640946de900&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:126:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish returns a SafeDeferrable that catches exceptions in callbacks and logs them" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.027716"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372d718&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372d718&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:36:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish recipient variable case is converted to snakeCase" file="./spec/acceptance/realtime/push_admin_spec.rb" time="4.014727"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bec728&gt;" type="NameError">Failure/Error: &quot;#{endpoint}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092bec728&gt;
./lib/ably/realtime/client.rb:302:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:105:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid recipient raises an error after receiving a 40x realtime response" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.821547"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094ff6678&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094ff6678&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:69:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish using test environment channel recipient (#RSH1a) triggers a push notification" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.496395"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094ddbac8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094ddbac8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:152:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:156:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a empty recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="35.159121"><failure message="expected ArgumentError with message matching /empty/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b98360&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:60:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:60:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected ArgumentError with message matching /empty/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b98360&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:60:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:60:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/push_admin_spec.rb:60:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a nil recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="36.290946"><failure message="expected ArgumentError with message matching /Expecting a Hash/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640948250c0&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:55:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:55:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected ArgumentError with message matching /Expecting a Hash/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640948250c0&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:55:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:55:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/push_admin_spec.rb:55:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a nil recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.543710"><failure message="expected ArgumentError with message matching /Expecting a Hash/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945373b8&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:45:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:45:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected ArgumentError with message matching /Expecting a Hash/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945373b8&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:45:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:45:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/push_admin_spec.rb:45:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid arguments raises an exception with a empty recipient" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.580683"><failure message="expected ArgumentError with message matching /empty/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094629280&gt;&gt; with backtrace:
  # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
  # ./lib/ably/realtime/client.rb:309:in `uri&apos;
  # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
  # ./lib/ably/realtime/client.rb:133:in `new&apos;
  # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:50:in `block (6 levels) in &lt;top (required)&gt;&apos;
  # ./spec/acceptance/realtime/push_admin_spec.rb:50:in `block (5 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
  # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
  # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
  # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
  # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;" type="RSpec::Expectations::ExpectationNotMetError">Failure/Error: orig_handle_failure(*args, &amp;block)

  expected ArgumentError with message matching /empty/, got #&lt;NameError: undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094629280&gt;&gt; with backtrace:
    # ./lib/ably/realtime/client.rb:300:in `hostname&apos;
    # ./lib/ably/realtime/client.rb:309:in `uri&apos;
    # ./lib/ably/realtime/connection.rb:176:in `initialize&apos;
    # ./lib/ably/realtime/client.rb:133:in `new&apos;
    # ./lib/ably/realtime/client.rb:133:in `initialize&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:50:in `block (6 levels) in &lt;top (required)&gt;&apos;
    # ./spec/acceptance/realtime/push_admin_spec.rb:50:in `block (5 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
    # ./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
    # ./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
    # ./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
    # ./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:156:in `handle_failure&apos;
./spec/acceptance/realtime/push_admin_spec.rb:50:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #publish invalid push data raises an error after receiving a 40x realtime response" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.045510"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c18c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937c18c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:33:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:80:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #list returns a PaginatedResult object containing DeviceDetails objects" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.000003"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #list supports paging" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.812349"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #list raises an exception if params are invalid" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.604395"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations without permissions raises a permissions not authorized exception" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.009320"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c60c18&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092c60c18&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `new&apos;
./spec/acceptance/realtime/push_admin_spec.rb:13:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:169:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/push_admin_spec.rb:184:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #remove_where removes all matching device registrations by client_id" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.726003"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #remove removes the provided device id string" file="./spec/acceptance/realtime/push_admin_spec.rb" time="35.018533"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #save saves the new DeviceDetails Hash object" file="./spec/acceptance/realtime/push_admin_spec.rb" time="33.842207"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #save with a failed request fails if data is invalid" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.368597"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #get returns a DeviceDetails object if a device ID string is provided" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.085049"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.push_admin_spec" name="Ably::Realtime::Push::Admin using JSON protocol #device_registrations #get with a failed request raises a ResourceMissing exception if device ID does not exist" file="./spec/acceptance/realtime/push_admin_spec.rb" time="34.725657"><failure message="RSpec::Core::MultipleExceptionError" type="RSpec::Core::MultipleExceptionError">
</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_params returns the auth params asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="34.330939"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e96918&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e96918&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:805:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #using_basic_auth? is true when using Basic Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="33.520703"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c49480&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c49480&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:57:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #key contains the API key" file="./spec/acceptance/realtime/auth_spec.rb" time="35.770413"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a5c118&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a5c118&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:36:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #key_name contains the API key name" file="./spec/acceptance/realtime/auth_spec.rb" time="35.225347"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947903a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947903a8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:43:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #key_secret contains the API key secret" file="./spec/acceptance/realtime/auth_spec.rb" time="34.424897"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944053a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944053a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:50:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #authentication_security_requirements_met? returns true" file="./spec/acceptance/realtime/auth_spec.rb" time="34.116264"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094626760&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094626760&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:25:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with basic auth #using_token_auth? is false when using Basic Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="34.281370"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937d7678&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937d7678&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:64:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol deprecated #authorise returns a valid token (#RSA10l)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.427398"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b966e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b966e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1025:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol deprecated #authorise logs a deprecation warning (#RSA10l)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.813140"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094f94798&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094f94798&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1019:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when explicitly called, with an explicit ClientOptions client_id and an incompatible client_id in a TokenDetails object passed to the auth callback rejects a TokenDetails object with an incompatible client_id and fails with an exception" file="./spec/acceptance/realtime/auth_spec.rb" time="34.579552"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094d416d0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094d416d0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:288:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize with token auth returns a token asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="34.772430"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b08698&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b08698&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:193:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token ensures message delivery continuity whilst upgrading (#RTC8a1)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.939921"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409481b598&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409481b598&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:702:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when DISCONNECTED obtains a token, upgrades from anonymous to identified, and connects to Ably immediately (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.001396"><skipped/></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when DISCONNECTED obtains a similar anonymous token and connects to Ably immediately (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="35.342779"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409454dc58&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409454dc58&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:323:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:521:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when upgrading capabilities is allowed (#RTC8a1)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.568654"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945ada90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945ada90&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:658:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when SUSPENDED obtains a token and connects to Ably immediately (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.185995"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939d1a50&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640939d1a50&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:323:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:565:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when FAILED obtains a token and connects to Ably (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.552495"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b416c0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092b416c0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:323:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:371:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when the authCallback fails calls the error callback of authorize and leaves the connection intact (#RSA4c3)" file="./spec/acceptance/realtime/auth_spec.rb" time="35.165626"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094efb6d8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094efb6d8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:639:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when INITIALIZED obtains a token and connects to Ably (#RTC8c, #RTC8b1)" file="./spec/acceptance/realtime/auth_spec.rb" time="35.047804"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094cb6170&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094cb6170&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:331:in `block (8 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when client is identified transitions the connection state to FAILED if the client_id changes (#RSA15c, #RTC8a2)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.699415"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a980f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a980f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:597:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when auth fails transitions the connection state to the FAILED state (#RSA15c, #RTC8a2, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.641266"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947baa90&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947baa90&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:610:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when CLOSED obtains a token and connects to Ably (#RTC8c, #RTC8b1, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="33.344735"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945122e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945122e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:323:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:388:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when CONNECTING aborts the current connection process, obtains a token, and connects to Ably again (#RTC8b)" file="./spec/acceptance/realtime/auth_spec.rb" time="35.203233"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094107f18&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094107f18&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:323:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:352:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when downgrading capabilities (#RTC8a1) is allowed and channels are detached" file="./spec/acceptance/realtime/auth_spec.rb" time="34.380604"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409381d380&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409381d380&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:684:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when in the CONNECTED state with a valid token in the AUTH ProtocolMessage sent obtains a new token (as anonymous user before &amp; after) and upgrades the connection after receiving an updated CONNECTED ProtocolMessage (#RTC8a, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.619686"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a81cd0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092a81cd0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:446:in `block (8 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when already authenticated with a valid token when in the CONNECTED state with a valid token in the AUTH ProtocolMessage sent obtains a new token (that upgrades from anonymous to identified) and upgrades the connection after receiving an updated CONNECTED ProtocolMessage (#RTC8a, #RTC8a3)" file="./spec/acceptance/realtime/auth_spec.rb" time="0.001538"><skipped/></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize with auth_callback blocking with a slow auth callback response asynchronously authenticates" file="./spec/acceptance/realtime/auth_spec.rb" time="33.117320"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094eb4030&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094eb4030&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:222:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when implicitly called, with an explicit ClientOptions client_id and an incompatible client_id in a TokenDetails object passed to the auth callback rejects a TokenDetails object with an incompatible client_id and fails with an exception" file="./spec/acceptance/realtime/auth_spec.rb" time="34.699300"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c48378&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c48378&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:240:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize when implicitly called, with an explicit ClientOptions client_id and an incompatible client_id in a TokenRequest object passed to the auth callback and fails with an exception rejects a TokenRequests object with an incompatible client_id and fails with an exception" file="./spec/acceptance/realtime/auth_spec.rb" time="34.353433"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a49f18&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a49f18&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:256:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #request_token_async returns a token synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="35.384154"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094771688&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094771688&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:179:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #authorize_async returns a token synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="34.504945"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640943d88c8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640943d88c8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:735:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #create_token_request returns a token request asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="35.773063"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640946be4e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640946be4e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:148:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #create_token_request_async returns a token request synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="36.289346"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370e548&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409370e548&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:158:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol methods #request_token returns a token asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="35.459511"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e37420&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564091e37420&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:168:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_header returns an auth header asynchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="34.940198"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e5b160&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e5b160&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:821:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the client is initialized with ClientOptions and the token is a JWT token when credentials are valid posts successfully to a channel" file="./spec/acceptance/realtime/auth_spec.rb" time="35.823410"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b4bba0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b4bba0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1125:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the client is initialized with ClientOptions and the token is a JWT token when credentials are invalid fails with an invalid signature error" file="./spec/acceptance/realtime/auth_spec.rb" time="36.315762"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947be0f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947be0f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1140:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the JWT token request includes a client_id the client_id is the same that was specified in the auth_callback that generated the JWT token" file="./spec/acceptance/realtime/auth_spec.rb" time="34.142035"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944f88e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944f88e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1222:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_url when credentials are wrong disconnected includes and invalid signature message" file="./spec/acceptance/realtime/auth_spec.rb" time="34.815225"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093f853e8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093f853e8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1057:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_url when credentials are valid client successfully fetches a channel and publishes a message" file="./spec/acceptance/realtime/auth_spec.rb" time="33.487173"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093749940&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093749940&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1044:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_url when token is expired receives a 40142 error from the server" file="./spec/acceptance/realtime/auth_spec.rb" time="34.478803"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092382510&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092382510&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1069:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_callback when credentials are valid authentication succeeds and client can post a message" file="./spec/acceptance/realtime/auth_spec.rb" time="35.307993"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e708a8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e708a8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1094:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when using auth_callback when credentials are invalid authentication fails and reason for disconnection is invalid signature" file="./spec/acceptance/realtime/auth_spec.rb" time="35.465847"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c101f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c101f8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1109:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when the JWT token request includes a subscribe-only capability client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions" file="./spec/acceptance/realtime/auth_spec.rb" time="34.198231"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a0f3b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094a0f3b8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1240:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when JWT token expires client disconnects, a new token is requested via auth_callback and the client gets reconnected" file="./spec/acceptance/realtime/auth_spec.rb" time="33.852319"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944b3ae0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944b3ae0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1166:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol when using JWT when JWT token expires and an AUTH procol message is received client reauths correctly without going through a disconnection" file="./spec/acceptance/realtime/auth_spec.rb" time="34.640199"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094375110&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094375110&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1194:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_header_sync returns an auth header synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="33.903867"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937a6708&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640937a6708&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:830:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token request with a client_id is not true as identification is not confirmed until authenticated" file="./spec/acceptance/realtime/auth_spec.rb" time="35.228071"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093635ba8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093635ba8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:999:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token request with a client_id once connected is true as identification is completed following CONNECTED ProtocolMessage" file="./spec/acceptance/realtime/auth_spec.rb" time="34.289682"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094fb8670&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094fb8670&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:1005:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a wildcard client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="33.990311"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c0cf80&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c0cf80&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:930:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a wildcard client_id (anonymous) before connected is false as identification is not possible from an opaque token string" file="./spec/acceptance/realtime/auth_spec.rb" time="35.309074"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947d4b48&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947d4b48&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:923:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with no client_id (anonymous) before connected is false as identification is not possible from an opaque token string" file="./spec/acceptance/realtime/auth_spec.rb" time="35.463640"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945ccf30&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640945ccf30&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:903:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with no client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="35.567494"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093715de8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093715de8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:910:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id before connected is false as identification is not possible from an opaque token string" file="./spec/acceptance/realtime/auth_spec.rb" time="34.420064"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094f16398&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094f16398&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:871:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id before connected #client_id is nil" file="./spec/acceptance/realtime/auth_spec.rb" time="35.167812"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b551a0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b551a0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:876:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="34.216924"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944d9470&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640944d9470&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:883:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token string with a valid client_id once connected #client_id is populated" file="./spec/acceptance/realtime/auth_spec.rb" time="34.774291"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409470d890&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409470d890&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:890:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using basic auth before connected is false as basic auth users do not have an identity" file="./spec/acceptance/realtime/auth_spec.rb" time="34.909980"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093814b40&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093814b40&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:843:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using basic auth once connected contains a validated wildcard client_id" file="./spec/acceptance/realtime/auth_spec.rb" time="35.988282"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092854b88&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564092854b88&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:857:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using basic auth once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="33.773661"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e62d48&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094e62d48&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:850:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a wildcard client_id (anonymous) is true" file="./spec/acceptance/realtime/auth_spec.rb" time="36.002320"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094ab02b8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094ab02b8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:980:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a wildcard client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="35.107248"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409457edd0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409457edd0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:986:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a client_id is true" file="./spec/acceptance/realtime/auth_spec.rb" time="35.501410"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b90c60&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564093b90c60&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:944:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with a client_id once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="34.650438"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409160c4f8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409160c4f8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:950:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with no client_id (anonymous) is true" file="./spec/acceptance/realtime/auth_spec.rb" time="34.654051"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c6e500&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094c6e500&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:962:in `block (6 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #client_id_validated? when using a token with no client_id (anonymous) once connected is true" file="./spec/acceptance/realtime/auth_spec.rb" time="34.463235"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947e5c40&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640947e5c40&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:968:in `block (7 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #using_token_auth? is true when using Token Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="34.222823"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094503c70&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094503c70&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:134:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #using_basic_auth? is false when using Token Auth" file="./spec/acceptance/realtime/auth_spec.rb" time="35.554312"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094688e60&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094688e60&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:125:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #current_token_details contains the current token after auth" file="./spec/acceptance/realtime/auth_spec.rb" time="34.105282"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372a4f0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409372a4f0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:83:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #token_params contains the configured auth options" file="./spec/acceptance/realtime/auth_spec.rb" time="34.640051"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409505d788&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409505d788&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:116:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #token_renewable? is true when an API key exists" file="./spec/acceptance/realtime/auth_spec.rb" time="34.954254"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094db9428&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094db9428&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:93:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #options (auth_options) contains the configured auth options" file="./spec/acceptance/realtime/auth_spec.rb" time="34.564551"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b4d5e0&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094b4d5e0&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:105:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol with token auth #client_id contains the ClientOptions client ID" file="./spec/acceptance/realtime/auth_spec.rb" time="34.274182"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094825c00&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x0000564094825c00&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:76:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol #auth_params_sync returns the auth params synchronously" file="./spec/acceptance/realtime/auth_spec.rb" time="34.386730"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409455c910&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409455c910&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:20:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:814:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol server initiated AUTH ProtocolMessage when not received should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.718525"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409458dc40&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x000056409458dc40&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:779:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.realtime.auth_spec" name="Ably::Realtime::Auth using JSON protocol server initiated AUTH ProtocolMessage when received should immediately start a new authentication process (#RTN22)" file="./spec/acceptance/realtime/auth_spec.rb" time="34.698169"><failure message="undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938379d8&gt;" type="NameError">Failure/Error: &quot;#{endpoint.gsub(&apos;nonprod:&apos;, &apos;&apos;)}.realtime.#{root_domain}&quot;

NameError:
  undefined local variable or method `root_domain&apos; for #&lt;Ably::Realtime::Client:0x00005640938379d8&gt;
./lib/ably/realtime/client.rb:300:in `hostname&apos;
./lib/ably/realtime/client.rb:309:in `uri&apos;
./lib/ably/realtime/connection.rb:176:in `initialize&apos;
./lib/ably/realtime/client.rb:133:in `new&apos;
./lib/ably/realtime/client.rb:133:in `initialize&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `new&apos;
./spec/acceptance/realtime/auth_spec.rb:19:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/acceptance/realtime/auth_spec.rb:756:in `block (5 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:171:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:129:in `instance_exec&apos;
./spec/support/event_machine_helper.rb:129:in `block (4 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:16:in `block (2 levels) in run_reactor&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine&apos;
./vendor/bundle/ruby/2.7.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run&apos;
./spec/support/event_machine_helper.rb:15:in `block in run_reactor&apos;
./spec/support/event_machine_helper.rb:14:in `run_reactor&apos;
./spec/support/event_machine_helper.rb:128:in `block (3 levels) in &lt;top (required)&gt;&apos;
./spec/support/rest_testapp_before_retry.rb:6:in `block (2 levels) in &lt;top (required)&gt;&apos;
./spec/support/event_machine_helper.rb:135:in `block (2 levels) in &lt;top (required)&gt;&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry&apos;
./vendor/bundle/ruby/2.7.0/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup&apos;
./vendor/bundle/ruby/2.7.0/gems/webmock-3.24.0/lib/webmock/rspec.rb:39:in `block (2 levels) in &lt;top (required)&gt;&apos;</failure></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats returns a PaginatedResult object" file="./spec/acceptance/rest/stats_spec.rb" time="0.432687"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by hour should aggregate the stats for that period" file="./spec/acceptance/rest/stats_spec.rb" time="0.272960"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by day should aggregate the stats for that period" file="./spec/acceptance/rest/stats_spec.rb" time="0.263789"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by month should aggregate the stats for that period" file="./spec/acceptance/rest/stats_spec.rb" time="0.073393"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to previous year interval the REST API defaults to 100 items for pagination" file="./spec/acceptance/rest/stats_spec.rb" time="0.358638"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :start set to first interval, :limit set to 1 and direction :forwards returns the first interval stats as stats are provided forwards from :start" file="./spec/acceptance/rest/stats_spec.rb" time="0.076361"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :start set to first interval, :limit set to 1 and direction :forwards returns 3 pages of stats" file="./spec/acceptance/rest/stats_spec.rb" time="0.619356"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to last interval and :limit set to 3 to ensure only last years stats are included the REST API defaults to direction :backwards" file="./spec/acceptance/rest/stats_spec.rb" time="0.078431"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with no options uses the minute interval by default" file="./spec/acceptance/rest/stats_spec.rb" time="0.272402"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns all aggregated message data" file="./spec/acceptance/rest/stats_spec.rb" time="0.077697"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns channels all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.260600"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns outbound realtime all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.260549"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns inbound realtime all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.078911"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns stat objects with #interval_granularity equal to :minute" file="./spec/acceptance/rest/stats_spec.rb" time="0.082667"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns zero value for any missing metrics" file="./spec/acceptance/rest/stats_spec.rb" time="0.077739"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns connections all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.077637"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns persisted presence all data" file="./spec/acceptance/rest/stats_spec.rb" time="0.077206"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns token_requests data" file="./spec/acceptance/rest/stats_spec.rb" time="0.074764"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns stat objects with #interval_time matching :start Time" file="./spec/acceptance/rest/stats_spec.rb" time="0.077912"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns stat objects with #interval_id matching :start" file="./spec/acceptance/rest/stats_spec.rb" time="0.262989"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns inbound realtime message data" file="./spec/acceptance/rest/stats_spec.rb" time="0.075084"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 returns api_requests data" file="./spec/acceptance/rest/stats_spec.rb" time="0.076545"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :from set to last interval and :limit set to 1 retrieves only one stat" file="./spec/acceptance/rest/stats_spec.rb" time="0.262746"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to last interval, :limit set to 1 and direction :backwards returns 3 pages of stats" file="./spec/acceptance/rest/stats_spec.rb" time="0.401205"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats by minute with :end set to last interval, :limit set to 1 and direction :backwards returns the 3rd interval stats first as stats are provided backwards from :end" file="./spec/acceptance/rest/stats_spec.rb" time="0.078301"></testcase>
<testcase classname="spec.acceptance.rest.stats_spec" name="Ably::Rest::Client#stats using JSON protocol fetching application stats when argument start is after end should raise an exception" file="./spec/acceptance/rest/stats_spec.rb" time="0.001073"></testcase>
</testsuite>
