Skip to content

Tenant's app is down

TL;DR

Check the tenant's subscription status first. If active, check whether the app's datacenter is in its scheduled daily "glow-up" maintenance window. If not, use Elrond to diagnose pod issues. Escalate to staff (bsm) if billing is the cause or if infra diagnosis points to a deeper issue.

Before you start

  • Confirm the tenant already provided their ElfHosted account username and a clear description of the issue/error.
  • If they are asking for help outside a ticket, ask them to open one in #elf-help.
  • Access: Elrond bot (for intake & diagnostics), Elf-Assessment (if tenant consents, for direct dashboard access).
  • Have ready: the app name and which datacenter they're on (Elrond shows this).
  • Onboarding videos: https://video.elfhosted.com — tenant-facing walkthroughs and staff-facing guides for common scenarios.

Steps

  1. Confirm the ticket intake: verify the tenant's ElfHosted username and the exact issue/error description they provided. If this was requested outside a help ticket, ask them to open a ticket in #elf-help before continuing.
  2. Use Elrond intake to pull their subscription history and current status.
  3. If their subscription is lapsed or expired, the app is down because it's not active. → Go to "Subscription issue" below.
  4. If subscription is active, continue to step 3.
  5. Check for glow-up maintenance: each datacenter has a scheduled daily maintenance window.
  6. Ask Elrond or check the ElfHosted status page for whether the app's datacenter is currently in a glow-up.
  7. If yes → the app is down because we're doing planned maintenance. Tell the tenant an ETA (typically 30–60 min) and ask them to check back.
  8. If no → continue to step 4.
  9. Ask Elrond for pod status for that tenant's app instance.
  10. Elrond can show whether the pod is running, crashing, or stuck.
  11. If the pod is healthy → the issue is likely DNS, firewall, or tenant-side; ask them to restart their client or clear cache.
  12. If the pod is down or crashing → go to "Pod issue" below.

Subscription issue

If their subscription lapsed or doesn't include the app they're trying to use:

  1. Direct them to the ElfHosted store to renew or upgrade.
  2. Offer to walk them through product selection if they're unsure which tier/bundle fits their needs (see Choosing the right media server tier).
  3. If they have billing questions (credit card declined, invoice, refund request, etc.), escalate to bsm (staff handles store backend).
  4. Tell them the app will re-provision within ~5 minutes of a successful purchase.
  5. If they reactivated a previously lapsed subscription, remind them that bundled services such as TorBox or NNTP may also need to be reactivated for those parts of the service to work again.

Pod issue

If the pod is down or crashing:

  1. Note the error: ask Elrond for pod logs or events (often shows a memory limit hit, image pull failure, or resource issue).
  2. For apps such as NzbDAV, ask specifically for the backend logs. Some apps have multiple containers (backend, frontend, proxy, etc.).
  3. Quick fixes to suggest before escalating:
  4. If the pod is in a crash loop, suggest the tenant restart their app via the dashboard (if they have Elf-Assessment access) or ask us to do it for them.
  5. If it looks like a memory issue (pod killed due to OOM), suggest they scale down features or reduce library size (this is especially common with large Plex/Jellyfin setups).
  6. If restarting doesn't work or logs suggest a deeper issue (e.g., storage failure, networking, persistent bug), escalate to bsm (staff handles infra decisions).

Verify it worked

  • Tenant can access their app again and see their content.
  • If still down, you've escalated with detailed pod/log info for staff to investigate.

Gotchas / watch out for

  • Glow-up timing: each datacenter has its own maintenance window — don't assume all regions are on the same schedule. Elrond or the status page will clarify.
  • Subscription vs pod: a lapsed subscription looks like the app is down (because it gets deprovisioned), but it's not a pod issue — it's a billing issue. Always check subscription first.
  • Tenant-side issues: even if the pod is healthy, the tenant's client, network, or DNS might be the problem. Ask them to restart, clear cache, or try a different device before assuming it's our infra.
  • Don't do it for them (yet): help them fix it themselves first; only restart/scale down if they ask or if you've exhausted troubleshooting. If they really can't do it and it's blocking them, you can offer to do it via their Elf-Assessment dashboard.

ElfTerm / Elrond cheat sheet

NOTE: You must be using a Venger account on the same DC as the tenant whose pods you are interacting with.

Venger (tenant namespace) ElfTerm commands

List pods

kubectl get pods -n aa-<username>

Show node, IP, container status

kubectl get pod -n aa-<username> <full-pod-name> -o wide

Restart a pod by deleting it

kubectl delete pod -n aa-<username> <full-pod-name>

List pod CPU & memory usage

kubectl top pods -n aa-<username>

Describe a pod to show attributes

kubectl describe pod -l app.elfhosted.com/name=<appname>

Check for OOM kills

kubectl describe pod -l app.elfhosted.com/name=<appname> | grep OOM

View pod logs

kubectl logs -n aa-<username> <full-pod-name> --tail=-1 --timestamps | grep -v "superfluous response.WriteHeader"

Display when backups last ran

kubectl get replicationsource -n aa-<username>

General (non-Venger) ElfTerm / elfbot commands

Run the broken symlink report

elfbot symlink report-broken

Delete the broken symlinks

elfbot symlink delete-broken

Import/refresh default quality profiles to the arrs

elfbot refresh-profiles all

These commands can also be issued via Elrond where appropriate.

Discord Carl-bot commands

We have a Carl-bot in Discord with a number of helper commands that can be used when assisting tenants. Available commands include:

actual, aiostreams, audiobookshelf, balrog, bazarr, bug, bundleup, calibreweb, cinesync, cleanuparr, comet, connect, contribute, cookies, dangerzone, deluge, donate, ea, elfbot, elfpoints, emby, faq, filebrowser, flaresolverr, gethelp, gluetun, gotify, jackettio, jellyfin, jellyseerr, joplin, kavita, komga, kubernetes-dashboard, lazylibrarian, lidarr, mattermost, mediaflowproxy, mediafusion, mediastorm, migrate, miniflux, mylar, navidrome, nopiracy, noreselling, notifiarr, nzbdav, nzbget, ombi, openbooks, payitforward, plex, plex-token, privatebin, prowlarr, qbittorrent, radarr, rclone, readarr, resiliosync, review, rickroll, rpdb, rutorrent, sabnzbd, seafile, seerr, shelfmark, shoko, sonarr, speed, stremio-server, stremio-web, stremthru, suggestarr, suggestion, switchsubscription, syncthing, tautulli, thelounge, troubleshoot, uptimekuma, vaultwarden, wallabag, webdav, wizarr

  • Example: use !ea in Discord to spawn a short description and a link to the Elf-Assessment (useful for getting a tenant to grant temporary dashboard access).

Add or update this list in Discord if new helper commands are added.