Troubleshooting Omairc
Start with the narrowest observable failure. Do not delete profiles, logs, or credential entries first: that removes evidence and can trigger duplicate history. Status is the first place to inspect for network and command failures; the application warning/error log is the next step.
Collect a baseline
Section titled “Collect a baseline”- Record
omairc --versionand your operating system/package type. - Confirm whether the GUI window is running and responsive.
- From a terminal run
omairc connections. Control commands return compact JSON;--helpand--versionreturn plain text. - In the GUI, open the affected network’s Status and note its state and newest error.
- Reproduce once, redact sensitive values, and retain the relevant application log lines. Storage locations vary; see Security and storage.
The GUI does not start, or a second launch does nothing
Section titled “The GUI does not start, or a second launch does nothing”- Run
omairc --help. If it is not found, fix the installation orPATHbefore debugging IRC. - Check whether Omairc is already running. A second launch intentionally raises the single existing process instead of opening another connection.
- Start from a terminal once and inspect warning/error output and the application log.
- On Linux, distinguish display/Qt plugin startup errors from IRC failures. On Windows portable installs, keep the deployed Qt and runtime DLLs beside
omairc.exe. - Use
omairc --demo-serveronly as an isolated UI check; demo state is temporary and does not test your server or stored profile.
The CLI says Omairc is not running
Section titled “The CLI says Omairc is not running”- Start the desktop window as the same OS user and keep it running.
- Verify
omairc connectionsuses the binary from the same installation (Get-Command omaircon PowerShell orcommand -v omaircin a shell). - Do not run the CLI with
sudo; that changes the user and runtime location. - If there are multiple connections, pass the
idreturned byconnections, not the display name or host. - On macOS, use the Homebrew PATH helper or the executable inside the app bundle. Do not guess or connect directly to
omairc.sock.
If JSON contains "uncertain":true after send, do not retry immediately. Read the target and follow the confirmation procedure in Use Omairc with an agent.
A network will not connect or keeps reconnecting
Section titled “A network will not connect or keeps reconnecting”Check in this order:
- Confirm host, port, TLS setting, and network reachability.
- Read Status for DNS, TCP, TLS certificate, registration, nick-in-use, SASL, watchdog, or server-throttle errors.
- Separate Password (
PASS) from NickServ credentials. Unlock/fix the credential store if automatic connect stopped because a secret could not be read. - For ZNC, verify its account/upstream-network format and inspect
*statuswith/znc; a bouncer network value cannot contain a space or slash. - Wait through the built-in reconnect backoff rather than repeatedly applying the profile.
/disconnector/quitintentionally stops that network’s reconnect loop.
Never work around a TLS certificate failure by disabling TLS unless you understand and accept the exposure.
A message does not send or appears twice
Section titled “A message does not send or appears twice”- Confirm the connection state is Connected and the target exists.
- In a shell, quote
'#channel'and text containing spaces. Use--before dash-prefixed targets or ambiguous arguments. - Keep slash commands in the GUI composer; CLI
sendis aPRIVMSG, not a command executor. - Check Status for invalid target, membership, flood control, or outbound length errors.
- For
"uncertain":true, read before one possible retry. Duplicate-looking muted rows may instead be overlapping bouncer/server/local history; see History and bouncers.
A password will not save or automatic connect stops
Section titled “A password will not save or automatic connect stops”- Read the message in Connect: Omairc explicitly reports session-only storage.
- Unlock and test the platform credential service (Keychain, Secret Service, or Credential Manager) in the same desktop session.
- Ensure QtKeychain and its platform backend are present in source/portable installations.
- Enter the secret again and Apply. Do not place it in ordinary config or command arguments as a workaround.
- If unresolved, report the storage error category and platform—not the secret or a credential export.
Unread, inbox, or notifications look wrong
Section titled “Unread, inbox, or notifications look wrong”- Decide whether you mean GUI unread/mention state, the session inbox, or the independent CLI
--unreadcursor. - Test with a live mention or direct message while the window is unfocused. Replay intentionally does not alert.
- Check
/muted,/highlights, and/monitored; mutes suppress mention attention, and reconnect MONITOR hydration is quiet. - On Linux, check desktop notification permissions, do-not-disturb, and a working D-Bus session. An invalid session-bus address makes notification integration no-op rather than block.
- On macOS, check Omairc’s notification authorization in System Settings. On Windows, check Focus Assist and the app’s notification settings, and confirm the app’s Start Menu shortcut exists: Windows toasts, and reopening the window from a toast click, depend on it. The terminal client does not notify on Windows. See Notifications and attention.
The terminal client does not start, notify, or follow the theme
Section titled “The terminal client does not start, notify, or follow the theme”- Confirm the release carries
omairc-tuiassets and thatomairc-tui --versionruns. See Use the terminal client for the install paths. - If the colors do not match Omarchy, remember that live
colors.tomlwatching is Linux-only; elsewhere the client uses a fixed dark palette. - If notifications do not appear, remember the terminal client notifies on Linux and macOS only, and the macOS path needs
osascriptavailable. - If it crashed, read
<state>/omairc/omairc-tui.log, beside the desktop app’somairc.log. - Do not run the desktop app and the terminal client on the same network at once; the server can reject, disconnect, or rename the duplicate nick.
A nick’s color changed after an upgrade
Section titled “A nick’s color changed after an upgrade”Per-nick colors are assigned by hashing the nick into a fixed palette. That palette grew from five hue families to eight, so a nick’s assigned color can change once when you first run the release that added the new families. The color is only a visual identifier; nothing about the account or messages changes.
Theme or text scaling does not follow the desktop
Section titled “Theme or text scaling does not follow the desktop”Omarchy live-theme watching and portal text scaling are Linux-only. On Linux, verify the desktop portal and session bus, then restart the portal and Omairc if the portal is stale. An invalid DBUS_SESSION_BUS_ADDRESS disables these reads. On Windows and macOS, do not expect the Omarchy theme watcher; this is a platform boundary, not a profile failure.
Avatars or a network icon do not load
Section titled “Avatars or a network icon do not load”- Run
/pref avatarsand enable peer avatars if desired. - Confirm the network supports the relevant metadata (
draft/metadata-2) or icon capability and supplied an HTTPS URL. - A letter fallback means the URL was absent, unsafe, unreachable, returned an unsuitable image, or exceeded image safety limits.
- Check DNS/HTTPS without weakening URL validation. Host redirects, private/local addresses, and oversized images can be refused deliberately.
- Remember that enabling peer avatars lets remote image hosts observe your IP. See Security and storage.
Typing indicators do not appear
Section titled “Typing indicators do not appear”Typing requires IRCv3 message tags/client typing support from the server and the other client. Channel typing appears on member rows; direct-message typing appears in the transcript. An active hint expires after a short interval and a paused hint after about 30 seconds. Missing capability support, a disconnected peer, expiry, or another client not publishing tags is normal—not evidence that chat is broken.
/list remains loading or shows old results
Section titled “/list remains loading or shows old results”- Keep the affected network focused and check Status. The server may answer with try-again/too-many-matches errors or not terminate LIST.
- Wait for Omairc’s timeout; it leaves Loading channels…, records the reason, and allows a later retry.
- Run
/listagain to refresh. The same mask otherwise uses that network’s in-memory cache until disconnect. - Do not compare rows across networks: each connection owns its own LIST request and cache.
- If reproducible, collect Status around
321/322/323,263, or416without exposing private topics.
A macOS app bundle or CLI fails
Section titled “A macOS app bundle or CLI fails”-
Match the release archive to Apple Silicon (
arm64) or Intel (x64), then move/extract the app normally rather than copying only its executable. -
Prefer the notarized release or Homebrew cask. For Homebrew, the repository URL is currently required:
Terminal window brew tap fredimachado/omairc https://github.com/fredimachado/omaircbrew install --cask fredimachado/omairc/omairc -
Launch the bundle with
open /path/to/omairc.app. The CLI executable isomairc.app/Contents/MacOS/omairc; the Homebrew helper already executes it inside the bundle. -
Do not move the
Contents/MacOS/omaircfile out of its bundle. Qt plugins andqt.confare bundle-relative. Current releases handle launching that in-bundle executable through a symlink. -
If Gatekeeper rejects an official tagged release, record the exact assessment and archive name; do not remove quarantine or disable security globally as a first fix.
Escalate with useful evidence
Section titled “Escalate with useful evidence”Include the version, OS/architecture, package type, one symptom, exact steps, redacted CLI JSON, relevant Status lines, and relevant application warning/error lines. State whether --demo-server reproduces the UI symptom. Never attach profile trees, transcript directories, credential exports, passwords, or tokens.