# Linux\_host desktop fails with "no implicit conversion of nil into String"

**URL:** <https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113>\
**Category:** Get Help\
**Tags:** ondemand2\
**Created:** [June 10, 2022, 6:56pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113 "2022-06-10T18:56:57Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![MadtownDavid](https://avatars.discourse-cdn.com/v4/letter/m/958977/32.png) [@MadtownDavid](https://discourse.openondemand.org/u/MadtownDavid)\
**Post date:** [June 10, 2022, 6:56pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/1 "2022-06-10T18:56:57Z")

</div>

Hi folks, just getting started on Alma 8 with rpm-based OnDemand v. 2.0.23. I have a trivial linux\_host cluster set up; file browser and ssh/shell access are working fine. When I try to start a desktop session, I’m getting the above error. Without more information (file? line number? stack trace?), I’m not sure where to go next. I’m not doing any containerizing, for the moment just trying to get a browser-based Linux desktop working on the host OS. Nothing useful in any of the logs I’ve seen. Any helpful debugging next steps are most appreciated. Thanks!

Relevant files follow…

> cat /etc/ood/config/clusters.d/davidtest.yml

* * *

v2:  
metadata:  
title: “davidtest”  
login:  
host: “davidtest.domain.edu”  
job:  
adapter: “linux\_host”  
submit\_host: “davidtest.domain.edu”  
ssh\_hosts: # These are the actual login nodes  
- davidtest.domain.edu  
site\_timeout: 7200  
debug: true  
tmux\_bin: /usr/bin/tmux

> cat /etc/ood/config/apps/bc\_desktop/davidtest.yml

* * *

title: “Davidtest Desktop”  
description: “XFCE desktop on davidtest”  
cluster: “davidtest”  
attributes:  
desktop: “xfce”

---

<div class="post-metadata">

**Author:** ![jeff.ohrstrom](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/jeff.ohrstrom/32/136_2.png) [@jeff.ohrstrom](https://discourse.openondemand.org/u/jeff.ohrstrom)\
**Post date:** [June 10, 2022, 7:10pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/2 "2022-06-10T19:10:24Z")

</div>

Hi and welcome!

You may have a log entry in `/var/log/ondemand-nginx/$USER/error.log`.

But you’re right, without it it’s hard to saw where it’s coming from without that. I can’t exactly tell if your YAML correctly formatted, but I’d guess it is and it looks to be complete. Let’s hope there’s a message for us in that log.

---

<div class="post-metadata">

**Author:** ![MadtownDavid](https://avatars.discourse-cdn.com/v4/letter/m/958977/32.png) [@MadtownDavid](https://discourse.openondemand.org/u/MadtownDavid)\
**Post date:** [June 10, 2022, 7:54pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/3 "2022-06-10T19:54:17Z")

</div>

Hey Jeff, yeah, checked that, unfortunately, nothing more what displays on the browser:

App 21942 output: [2022-06-10 14:49:28 -0500] INFO “execve = [“git”, “describe”, “–always”, “–tags”]”  
App 21942 output: [2022-06-10 14:49:28 -0500] INFO “method=GET path=/pun/sys/dashboard/batch\_connect/sys/bc\_desktop/davidtest/session\_contexts/new format=html controller=BatchConnect::SessionContextsController action=new status=200 duration=24.09 view=14.63”  
App 21942 output: [2022-06-10 14:49:38 -0500] ERROR “ERROR: TypeError - no implicit conversion of nil into String”  
App 21942 output: [2022-06-10 14:49:38 -0500] INFO “execve = [“git”, “describe”, “–always”, “–tags”]”  
App 21942 output: [2022-06-10 14:49:38 -0500] INFO “method=POST path=/pun/sys/dashboard/batch\_connect/sys/bc\_desktop/davidtest/session\_contexts format=html controller=BatchConnect::SessionContextsController action=create status=200 duration=91.94 view=15.03”

---

<div class="post-metadata">

**Author:** ![jeff.ohrstrom](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/jeff.ohrstrom/32/136_2.png) [@jeff.ohrstrom](https://discourse.openondemand.org/u/jeff.ohrstrom)\
**Post date:** [June 13, 2022, 1:56pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/4 "2022-06-13T13:56:59Z")

</div>

> [@MadtownDavid](#):
>
> no implicit conversion of nil into String”

Can you share the app’s form YAML? I’m guessing some misconfiguration/something about that file is throwing this off.

---

<div class="post-metadata">

**Author:** ![yee379](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/yee379/32/1248_2.png) [@yee379](https://discourse.openondemand.org/u/yee379)\
**Post date:** [August 30, 2022, 6:23pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/5 "2022-08-30T18:23:51Z")

</div>

i’m having a similar problem. is there a way to increase the logging or get a stack trace of the error in the logs?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/osc/original/2X/b/bae70bd0ed39a3ae769c2108155f4cb3e9da8385.png) [@system](https://discourse.openondemand.org/u/system)\
**Post date:** [February 26, 2023, 6:24pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/6 "2023-02-26T18:24:41Z")

</div>

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.

---

<div class="post-metadata">

**Author:** ![jeff.ohrstrom](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/jeff.ohrstrom/32/136_2.png) [@jeff.ohrstrom](https://discourse.openondemand.org/u/jeff.ohrstrom)\
**Post date:** [February 19, 2024, 2:30pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/7 "2024-02-19T14:30:09Z")

</div>



---

<div class="post-metadata">

**Author:** ![migueldiascosta](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/migueldiascosta/32/1770_2.png) [@migueldiascosta](https://discourse.openondemand.org/u/migueldiascosta)\
**Post date:** [February 19, 2024, 11:11pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/8 "2024-02-19T23:11:59Z")

</div>

in case someone else hits this:

I encountered the same error message, it’s indeed hard to debug, but in my case it was because `singularity_image` was not defined in the yaml file, adding it solved that particular problem

I then encountered a `value must be enumerable error`, and that in turn was because my yaml syntax for `ssh_hosts` was wrong

after that `linux_host` is working like a charm, and it can be quite useful!

so, it would be good if the logs could point more closely to where the error is coming from, but I guess at least in my case there’s no substitute for reading the documentation (it does say that `singularity_image` needs to be defined) and for being careful when writing yaml files 😅

---

<div class="post-metadata">

**Author:** ![albenstein](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/albenstein/32/3222_2.png) [@albenstein](https://discourse.openondemand.org/u/albenstein)\
**Post date:** [January 19, 2026, 7:59am UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/9 "2026-01-19T07:59:42Z")

</div>

I’ve same error when I’m trying to run desktop session. I can send whatever file you want.

---

<div class="post-metadata">

**Author:** ![albenstein](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/albenstein/32/3222_2.png) [@albenstein](https://discourse.openondemand.org/u/albenstein)\
**Post date:** [January 19, 2026, 8:02am UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/10 "2026-01-19T08:02:07Z")

</div>

![image](https://us1.discourse-cdn.com/flex015/uploads/osc/original/2X/6/69938ec1b3f2d52519c778312ec8cfe7d798e494.png)

---

<div class="post-metadata">

**Author:** ![jeff.ohrstrom](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/jeff.ohrstrom/32/136_2.png) [@jeff.ohrstrom](https://discourse.openondemand.org/u/jeff.ohrstrom)\
**Post date:** [January 20, 2026, 5:10pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/11 "2026-01-20T17:10:48Z")

</div>

Let me see the `submit.yml.erb` you’re trying to use. Basically, the `native` field for all schedulers is an array - but for the `linux_host` it’s a map (key value pairs).

---

<div class="post-metadata">

**Author:** ![albenstein](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/albenstein/32/3222_2.png) [@albenstein](https://discourse.openondemand.org/u/albenstein)\
**Post date:** [January 21, 2026, 6:31am UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/12 "2026-01-21T06:31:01Z")

</div>

```auto
[root@ondemand ~]# cat /var/www/ood/apps/sys/bc_desktop/submit.yml.erb
---
batch_connect:
  template: "vnc"
[root@ondemand ~]# cat /etc/ood/config/clusters.d/cluster.yml
---
v2:
  metadata:
    title: "HPC Cluster"
  login:
    host: "login.hpc.domain.com"
  job:
    adapter: "linux_host"
    submit_host: "visual.hpc.domain.com"
    ssh_hosts:
      - "visual.hpc.domain.com"
    site_timeout: 7200
    tmux_bin: "/usr/bin/tmux"
    strict_host_checking: false
    set_host: true
[root@ondemand ~]# cat /var/www/ood/apps/sys/bc_desktop/form.yml 
---
cluster: "cluster"
attributes:
  desktop:
    widget: "select"
    label: "Desktop Environment"
    options:
      - ["Xfce", "xfce"]
    value: "xfce"
  bc_num_hours:
    widget: "number_field"
    label: "Number of hours"
    value: 2
    min: 1
    max: 8
    step: 1
form:
  - desktop
  - bc_num_hours

```

---

<div class="post-metadata">

**Author:** ![jeff.ohrstrom](https://sea1.discourse-cdn.com/flex015/user_avatar/discourse.openondemand.org/jeff.ohrstrom/32/136_2.png) [@jeff.ohrstrom](https://discourse.openondemand.org/u/jeff.ohrstrom)\
**Post date:** [January 21, 2026, 4:54pm UTC](https://discourse.openondemand.org/t/linux-host-desktop-fails-with-no-implicit-conversion-of-nil-into-string/2113/13 "2026-01-21T16:54:46Z")

</div>

You should be supplying your own `form.yml` and `submit.yml` (and/or ERB variants) in `/etc/ood/config/apps/bc_desktop`.

Here’s an example of what we deploy at OSC. This `bc_desktop` directory lands in the same location `/etc/ood/config/apps/bc_desktop`.

> <https://github.com/OSC/osc-ood-config/blob/master/ondemand.osc.edu/apps/bc_desktop/submit/vdi.yml.erb>
