Console

Troubleshooting

Reachable from any device, including when the Mac running AllSec is not working — which is exactly when you need it. Run these in Terminal on that Mac. Each button copies the command.

Try this first. If AllSec is running at all, open its Diagnose page — menu bar icon → Diagnose… — which checks all of this from the inside and tells you what to do about each failure. The commands below are for when the app will not start, so it cannot check itself.

1. The app will not open, or nothing happens

Builds are not yet notarised by Apple, so macOS quarantines a downloaded copy and silently refuses to launch it. This clears the flag and starts it.

xattr -dr com.apple.quarantine /Applications/AllSec.app && open /Applications/AllSec.app

Then look at the menu bar, top right, for a camera icon. AllSec has no Dock icon and opens no window — the icon is the only sign it is running.

2. Is it actually running?

Two processes: the menu bar app, and the engine it supervises.

pgrep -fl "AllSec.app/Contents/MacOS" || echo "APP NOT RUNNING"; pgrep -fl "Resources/allsecd" || echo "ENGINE NOT RUNNING"; curl -s -o /dev/null -w "web UI: %{http_code}\n" http://127.0.0.1:1985/api/auth/status
web UI: 200Engine is up and unconfigured — set a password.
web UI: 401 or 303Engine is up and secured. This is healthy.
web UI: 000Nothing is listening. The engine is not running — see step 3.

3. Why did the engine not start?

The engine writes everything it does here. This is the single most useful thing to read, and the one to paste if you ask for help.

tail -40 ~/Library/Application\ Support/AllSec/logs/engine.log

If the file does not exist, the app never launched the engine — go back to step 1.

4. Cameras show nothing

Checks the decoder that turns camera streams into pictures, which is bundled inside the app.

/Applications/AllSec.app/Contents/Resources/ffmpeg -hide_banner -version | head -1; /Applications/AllSec.app/Contents/Resources/ffmpeg -hide_banner -loglevel error -f lavfi -i testsrc=size=320x180:rate=1 -frames:v 1 -f image2 -c:v mjpeg -y /tmp/t.jpg && echo "DECODE OK" || echo "DECODE FAILED"

DECODE FAILED or a dyld error means the bundled decoder will not run on this Mac. brew install ffmpeg works around it — and please report it, because it means the build is wrong.

5. Can this Mac reach the cameras?

Replace the addresses with your own. This tests the network directly, independently of AllSec.

ipconfig getifaddr en0 || ipconfig getifaddr en1; for ip in 192.168.86.13 192.168.86.16; do printf "%s " $ip; nc -z -G 2 $ip 554 2>/dev/null && echo "reachable" || echo "BLOCKED"; done
all BLOCKEDLocal Network permission. System Settings → Privacy & Security → Local Network → turn on AllSec. macOS blocks all LAN traffic without it and reports it as a routing error, which looks exactly like a fault that is not there.
reachableThe network is fine. Use Diagnose inside the app.
wrong subnetThis Mac is on a different network or VLAN from the cameras.

6. Video is garbled, or cameras keep dropping

Most IP cameras allow only two or three simultaneous connections. A second recorder — including another copy of AllSec on another Mac — exhausts them, and the result looks exactly like failing hardware.

ps -Ao command= | grep -c "[f]fmpeg"

Run it on every Mac that has AllSec installed. Only one should be non-zero. Quit the others from their menu bar.

7. Install the current version (one command, nothing to download first)

This downloads the latest build, stops everything AllSec is running — including the hidden engine process that keeps the app "in use" — installs it, clears the download quarantine flag, and reopens it.

Do not download or drag anything. This does all of it. An earlier version of this step copied from a mounted disk image, which silently reinstalled whatever old DMG happened to be mounted.

cd /tmp && curl -fL -o allsec-new.dmg https://allsec.app/download && pkill -f AllSec.app; sleep 4; hdiutil detach /Volumes/AllSec -quiet 2>/dev/null; M=$(hdiutil attach allsec-new.dmg -nobrowse | grep -o '/Volumes/[^ ]*' | tail -1); echo "mounted: $M"; [ -d "$M/AllSec.app" ] || { echo "MOUNT FAILED — nothing installed"; exit 1; }; rm -rf /Applications/AllSec.app && ditto "$M/AllSec.app" /Applications/AllSec.app && hdiutil detach "$M" -quiet && xattr -dr com.apple.quarantine /Applications/AllSec.app && open /Applications/AllSec.app && echo "INSTALLED:" && defaults read /Applications/AllSec.app/Contents/Info.plist CFBundleVersion

It prints INSTALLED: followed by the version number. If that number does not change, the install did not happen — say so rather than assuming it worked.

An earlier version of this command used hdiutil -quiet, which suppressed the output it was parsing for the mount point. It downloaded 48 MB and then silently installed nothing, every time. This version checks the mount and stops loudly if it fails.

Your cameras, credentials, layout and recordings live outside the app and are not touched.

7b. The app will not start at all (no menu bar icon)

Prints the last crash report, if there is one. The first lines name the cause. Paste the output when asking for help — it is the difference between a diagnosis and a guess.

ls -t ~/Library/Logs/DiagnosticReports/AllSec* /Library/Logs/DiagnosticReports/AllSec* 2>/dev/null | head -1 | xargs -I{} sh -c 'echo "REPORT: {}"; head -30 "{}"' || echo "NO CRASH REPORT — the app is not crashing; it is being stopped before it runs"

Also try launching it from Terminal, which shows errors macOS hides:

/Applications/AllSec.app/Contents/MacOS/AllSec

If it prints nothing and returns to the prompt immediately, it is exiting at startup. If it hangs with no output, it is running — and the icon is hidden rather than missing.

If it says killed: macOS refused to execute it, which on Apple Silicon almost always means the code signature. These two say exactly why.

codesign --verify --deep --strict --verbose=2 /Applications/AllSec.app 2>&1 | tail -6
log show --last 5m --predicate 'eventMessage CONTAINS "AllSec" OR senderImagePath CONTAINS "AllSec"' --style compact 2>/dev/null | tail -25

"valid on disk" means the signature is fine and something else is killing it. Anything else — invalid signature, unsigned code, a sealed resource missing — is the cause, and means the build needs a real Developer ID certificate rather than the ad-hoc signature used now.

7c. Go back to a version that worked

Installs build 71b243c, which predates the change suspected of breaking launch. Same command shape as step 7, pinned to that version.

cd /tmp && curl -fL -o allsec-roll.dmg https://allsec.app/download/AllSec-71b243c.dmg && pkill -f AllSec.app; sleep 4; hdiutil detach /Volumes/AllSec -quiet 2>/dev/null; M=$(hdiutil attach allsec-roll.dmg -nobrowse | grep -o '/Volumes/[^ ]*' | tail -1) && rm -rf /Applications/AllSec.app && cp -R "$M/AllSec.app" /Applications/ && hdiutil detach "$M" -quiet && xattr -dr com.apple.quarantine /Applications/AllSec.app && open /Applications/AllSec.app && echo "INSTALLED:" && defaults read /Applications/AllSec.app/Contents/Info.plist CFBundleVersion

Your cameras, credentials and recordings are untouched by this.

7b. The app will not start (no menu bar icon)

AllSec now writes a launch trace before anything that can fail, so even an app that dies during startup leaves a record. This prints that trace, the previous one, and any crash report. The last line of the trace is where it stopped.

echo "=== LAUNCH TRACE ==="; cat ~/Library/Application\ Support/AllSec/logs/launch.log 2>/dev/null || echo "(none — the app died before it could write, see crash report below)"; echo; echo "=== PREVIOUS ==="; cat ~/Library/Application\ Support/AllSec/logs/launch.prev.log 2>/dev/null || echo "(none)"; echo; echo "=== CRASH REPORT ==="; ls -t ~/Library/Logs/DiagnosticReports/AllSec* 2>/dev/null | head -1 | xargs -I{} head -24 "{}" || echo "(none — not crashing; blocked or exiting cleanly)"; echo; echo "=== SYSTEM LOG ==="; log show --last 10m --predicate 'process == "AllSec"' --style compact 2>/dev/null | tail -20 || true

Paste all of it. Between the trace and the crash report this says what happened rather than leaving it to be guessed at.

7c. Run the engine on its own

The engine does the actual work — cameras, recording, the web interface. It does not need the menu bar app. If the app will not start, this brings your cameras back immediately while the app is sorted out.

/Applications/AllSec.app/Contents/Resources/allsecd -config ~/Library/Application\ Support/AllSec/allsec.yaml

Leave that Terminal window open, then go to http://127.0.0.1:1985 — everything works as normal. Closing the window stops it. Any error it prints is the answer to why the engine will not run.

8. Start over without losing your cameras

Your cameras, credentials and settings live outside the app, so reinstalling never touches them.

ls -la ~/Library/Application\ Support/AllSec/data/

Forgotten the password? There is no reset link — this engine answers to nobody else. Delete auth.json from that folder and it returns to first-run setup with cameras and recordings intact.

rm ~/Library/Application\ Support/AllSec/data/auth.json && echo "password cleared — reopen AllSec"

Still stuck

Paste the output of step 3 (the engine log) and step 2. Between them they answer almost everything, and neither requires guessing.