OttoFMS 4.14.0 and 4.14.1 on Ubuntu, ARM architecture - service fails to start

Edited 2025-12-22: The problem is specific to ARM architecture and OttoFMS versions 4.14.0 and 4.14.1. Version 4.13.1 has no issue.

Copilot helped make the following problem report and seems pretty certain this is an issue with the installer. Are others not seeing the same issue?

Subject: OttoFMS 4.14.1 Linux installer creates invalid systemd service file causing NOPERMISSION errors

Severity: High - Service fails to start via systemd restart but works when started manually

Description:
The OttoFMS Linux installer (version 4.14.1) creates a systemd service file with configuration errors that cause permission-related failures when restarting the service through systemd, though the service runs successfully when started manually.

Root Causes:

  1. Systemd unit file bug: After and Wants directives are incorrectly placed in [Install] section instead of [Unit] section
  2. Exit code 4/NOPERMISSION: Service exits with permission error during automated restarts, triggering systemd rate limiting
  3. Rate limiting: After 5 rapid restart attempts, systemd blocks further starts with “Start request repeated too quickly”

Symptoms:

  • Service fails with status=4/NOPERMISSION when restarted via systemd
  • Manual start (systemctl start) works correctly after stopping
  • Service file shows configuration warnings about unknown keys in Install section

Service File Issue:

Environment:

  • OS: Ubuntu 22.04 LTS (ARM64)
  • FileMaker Server: 22.0.4
  • OttoFMS Version: 4.14.1 (binary dated Dec 10, 2024)
  • Installation Method: curl -fsSL 'https://downloads.ottomatic.cloud/ottofms/install-scripts/install-linux.sh' | bash

Reproduction:

  1. Fresh Ubuntu 22.04 ARM64 with FileMaker Server 22.0.4
  2. Run OttoFMS installer
  3. Attempt to restart service: systemctl restart ottofms-proofgeist-com.service
  4. Service fails with exit code 4/NOPERMISSION
  5. After failure, run: systemctl stop ottofms-proofgeist-com.service && systemctl start ottofms-proofgeist-com.service
  6. Service starts successfully

Back to Jason:

Although the above says the service starts successfully after a manual stop/start, I still get 404 Not found on /otto

I also tried this on Ubuntu 24.04 (ARM).

Pretty sure I also got this result on 24.04 (ARM) with FMS 21.1.5

Here is how I install Otto with Ansible:

---
# Install or update OttoFMS
- name: Install OttoFMS
  become: true
  ansible.builtin.shell: |
    set -o pipefail
    curl -fsSL 'https://downloads.ottomatic.cloud/ottofms/install-scripts/install-linux.sh' | bash
  args:
    executable: /bin/bash

- name: Ensure OttoFMS data dir exists
  become: true
  ansible.builtin.file:
    path: /opt/OttoFMS/data
    state: directory
    owner: fmserver
    group: fmsadmin
    mode: "2775" #setgid: keep group on new files

- name: Install OttoFMS License Key
  become: true
  ansible.builtin.template:
    src: OttoFMS_license.j2
    dest: /opt/OttoFMS/data/license.json
    owner: fmserver
    group: fmsadmin
    mode: "0640"
  register: ottofms_license

- name: Restart OttoFMS
  become: true
  ansible.builtin.service:
    name: ottofms-proofgeist-com
    state: restarted
  when: ottofms_license is changed

The second step is new. I never used to need to create the data directory. Unsure if the installer changed or a new version of Ansible no longer creates the directory automatically on the next step. Edit: It’s probably because when OttoFMS is working, it creates the data directory on first start.

The problem is specific to ARM architecture and versions 4.14.0 and 4.14.1.

Version 4.13.1 has no issue.

Its not Ansible, it’s Ubuntu for ARM, see my other answer on the other thread