# ERROR: No hosts currently compatible with this global configuration:

**URL:** <https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336>\
**Category:** Cylc Support\
**Created:** [May 18, 2021, 2:41pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336 "2021-05-18T14:41:39Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 18, 2021, 2:41pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/1 "2021-05-18T14:41:39Z")

</div>

After Security update on High Sierra iMac, all my suites are now emitting this message after register, validate, and run:

```auto
REGISTERED test -> test
Valid for cylc-7.8.8

ERROR: No hosts currently compatible with this global configuration:
  suite servers -> run hosts:
    []
  suite servers -> run host select -> rank:
    random
  suite servers -> run host select -> thresholds:
    
ERROR Contact info not found for suite "test", suite not running?

```

the ~/.cylc/global.rc file shows no differences over quite some time with respect to the offending settings:

```auto
[suite servers]
    run ports = 43001..43100
    run hosts =
    condemned hosts =
    scan hosts =
    scan ports = 43001..43100
    auto restart delay =
    [[run host select]]
        thresholds =
        rank = random

```

maybe the ports?

generate a new global.rc?

---

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 18, 2021, 2:52pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/2 "2021-05-18T14:52:16Z")

</div>

generating new global.rc did not effect any change to the error messages

---

<div class="post-metadata">

**Author:** ![hilary.j.oliver](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/hilary.j.oliver/32/4_2.png) [@hilary.j.oliver](https://cylc.discourse.group/u/hilary.j.oliver)\
**Post date:** [May 19, 2021, 1:06am UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/3 "2021-05-19T01:06:20Z")

</div>

> [@schaferk](#):
>
> After Security update on High Sierra iMac

Your Cylc global config settings look OK. If `run hosts` is empty, `cylc run` should default to starting a scheduler on localhost. I get the same error if I set `run hosts = blah` where `blah` is a non-existent host.

Maybe your OS security update has done something horrible to your network settings, affecting host visibility??

---

<div class="post-metadata">

**Author:** ![oliver.sanders](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/oliver.sanders/32/110_2.png) [@oliver.sanders](https://cylc.discourse.group/u/oliver.sanders)\
**Post date:** [May 19, 2021, 9:25am UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/4 "2021-05-19T09:25:57Z")

</div>

> Maybe your OS security update has done something horrible to your network settings, affecting host visibility??

Likely something along these lines, have a go at connecting to localhost:

```console
$ ssh localhost bash -c 'hostname'

```

That should return the hostname of the machine. If it doesn’t try adding `-v` after the `ssh` which should provide some debug info about why the connection failed.

---

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 19, 2021, 12:32pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/5 "2021-05-19T12:32:11Z")

</div>

\<$ ssh localhost bash -c ‘hostname’  
executing the above command (locally, on the offending machine) did elicit the correct hostname.  
executing the above command from another machine, using localhost|=ip address, did elicit the correct hostname.

i see where we/re going with this.  
time to trace HostAppointer

---

<div class="post-metadata">

**Author:** ![oliver.sanders](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/oliver.sanders/32/110_2.png) [@oliver.sanders](https://cylc.discourse.group/u/oliver.sanders)\
**Post date:** [May 19, 2021, 12:54pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/6 "2021-05-19T12:54:11Z")

</div>

Hmmm, is your global config overwriting the default with nothing?

Could try removing `[suite servers]run hosts` or setting `[suite servers]run hosts=localhost`.

> generate a new global.rc?

No need to generate a global.rc, the defaults are baked into Cylc, you only need to define the defaults you want to change.

---

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 19, 2021, 2:11pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/7 "2021-05-19T14:11:57Z")

</div>

neither of the suggestions.olivers.sanders, e.g. “…try removing…or setting…” effected a change in the result.

---

<div class="post-metadata">

**Author:** ![oliver.sanders](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/oliver.sanders/32/110_2.png) [@oliver.sanders](https://cylc.discourse.group/u/oliver.sanders)\
**Post date:** [May 19, 2021, 3:46pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/8 "2021-05-19T15:46:33Z")

</div>

Curious, I’m not sure.

Adding the `--debug` flag to `cylc run` might yield some insights to whats going on. The error you posted above seems to suggest that the `HostAppointer` was asked to choose a host from an empty list whereas we would expect the default `run hosts=localhost`.

Manually specifying the host on the CLI might bypass the issue:

```auto
$ cylc run --host=localhost <suite>

```

---

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 19, 2021, 4:21pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/9 "2021-05-19T16:21:09Z")

</div>

Manually specifying local host, e.g. cylc run --host=localhost test elicits same error message.

here/s what i do know:

lib/cylc/hostuserutil.py

116 def \_get\_host\_info(self, target=None):  
117 “”“Return the extended info of the current host.”“”  
118 if target not in self.\_host\_exs:  
119 if target is None:  
120 target = socket.getfqdn() \<-----

sets the ‘None’ value of target to:

('target1 ', None)  
('target2 ', ‘69.1.168.192.in-addr.arpa’)

ha… the dotted quad is backwards

experimentation with the ‘target’ value (and overriding value in \_get\_host\_info) permits the suite to run.

```
def _get_host_info(self, target=None):
    """Return the extended info of the current host."""
    print ("_get_host_info")
    if target not in self._host_exs:
        print ("target1 ", target)
        if target is None:
            target = socket.getfqdn()
        print ("target2 ", target)

```

# target = ‘in-addr.arpa.192.168.1.69’

```
        target = '192.168.1.69'
        print ("target3 ", target)

```

suggestions on a robust solution?

---

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 19, 2021, 6:12pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/10 "2021-05-19T18:12:46Z")

</div>

oliver.sanders’ suggestion from another thread “Suites, MacBookAir M1 issue”

‘’‘DNS Patch  
From Mac OS Catalina onwards the `socket.getfqdn` interface is broken for the default DNS configuration. If on a personal machine applying this patch to `lib/python/hostuserutil.py` should do the trick.  
‘’’

[DNS patch](https://github.com/cylc/cylc-flow/blob/30bf2117b5df8749aa85fc48e3c3be287a378e8a/etc/conf/macos-patch)

this change permits cylc suites to run now.

hostuserutil.py  
“- target = socket.getfqdn()”  
“+ target = socket.gethostname()”

---

<div class="post-metadata">

**Author:** ![oliver.sanders](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/oliver.sanders/32/110_2.png) [@oliver.sanders](https://cylc.discourse.group/u/oliver.sanders)\
**Post date:** [May 20, 2021, 10:08am UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/11 "2021-05-20T10:08:33Z")

</div>

Good glad that worked.

I haven’t seen that address format come out of `socket.getfqdn` before, apparently it’s for IPv4 reverse DNS lookup - [Reverse DNS lookup - Wikipedia](https://en.wikipedia.org/wiki/Reverse_DNS_lookup#IPv4_reverse_resolution) which is consistent with the behaviour from Catalina onwards which give an IPv6 arpa address:

```auto
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa

```

---

<div class="post-metadata">

**Author:** ![schaferk](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/schaferk/32/92_2.png) [@schaferk](https://cylc.discourse.group/u/schaferk)\
**Post date:** [May 20, 2021, 12:50pm UTC](https://cylc.discourse.group/t/error-no-hosts-currently-compatible-with-this-global-configuration/336/12 "2021-05-20T12:50:12Z")

</div>

```auto
Security Update 2020-005 10.13.6 05/16/2021, 10:31:27  

```

the trouble began with the update listed above.

cylc-7.8.x had been running fine before the update.
