This page covers the most common failure modes for The Telescope Net Node Agent and cloud server. Issues are grouped by subsystem. Start with the quick diagnostic checklist below to rule out the most frequent causes before diving into specific accordion sections.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ManiFed/TTN/llms.txt
Use this file to discover all available pages before exploring further.
Quick Diagnostic Checklist
Confirm the Seestar is on and on the same network
Check the node dashboard
http://localhost:5173 and inspect the status panel. The dashboard shows per-device connection state, the current observation plan, the last photometry result, and the tail of the agent log. Most issues are visible here without touching the command line.Check the agent log
data/logs/node_agent.log (Windows/Linux installs) or in the dashboard log tab. Filter for ERROR and WARNING lines first — most failures log a specific message at these levels.Verify config.yaml
observer.latitude and observer.longitude are set (non-zero), that image_watcher.watch_path points to the mounted Seestar SMB share, and that cloud.activation_code is present if cloud integration is enabled.Restart the Seestar firmware if ALPACA is unresponsive
ALPACA / Telescope Connection
"No ALPACA servers found"
"No ALPACA servers found"
- Seestar not powered on. The telescope must be on and fully booted. The Seestar app takes 30–60 seconds to initialise after power-on.
-
Different subnet. The agent host and the Seestar must be on the same Layer 2 network. A guest WiFi VLAN, AP isolation, or a double-NAT setup will block UDP broadcast. Verify with:
If nothing appears within 60 seconds of powering on the Seestar, the packets are being dropped by the network.
- macOS firewall blocking Python. On macOS, the first time Python tries to open a UDP socket, the system may prompt to allow it. If you dismissed that prompt, go to System Preferences → Privacy & Security → Firewall → Firewall Options and add Python to the allowed list.
"ErrorNumber 1: Device not connected"
"ErrorNumber 1: Device not connected"
"Host is down" despite Seestar app showing connected
"Host is down" despite Seestar app showing connected
- A network hiccup that disconnected the ALPACA server’s listening socket
- A firmware assert during a previous imaging session
- Extended uptime without a power cycle
"ErrorNumber 1024: Method Unpark is not implemented"
"ErrorNumber 1024: Method Unpark is not implemented"
Unpark method. The node dashboard’s Unpark button has no effect on this device.Fix: Unpark the telescope from within the Seestar app. The telescope must be unparked in the app before the node agent can issue slew commands.This is a known Seestar S50 ALPACA driver limitation, not a bug in the node agent."CoverCalibrator connect failed: 400 Client Error"
"CoverCalibrator connect failed: 400 Client Error"
config.yaml:Plate Solving / Photometry
Plate solve fails on every image
Plate solve fails on every image
-
ASTAP not found on PATH. Set the full binary path in
config.yaml:Installers bundle ASTAP automatically; development setups require a manual install from hnsky.org/astap.htm. - G18 star catalogue not installed. ASTAP requires the G18 catalogue to plate-solve Seestar images. Download the catalogue from the ASTAP site and install it in the default catalogue directory. Without the catalogue, ASTAP returns immediately with no solution.
-
Search radius too small for wide-field images. If the image is very wide field or the initial pointing is uncertain, increase the search radius:
Photometry quality always flagged as "poor"
Photometry quality always flagged as "poor"
quality_flag: poor when one or more of these thresholds are not met: SNR > 20, uncertainty < 0.30 mag, ≥ 3 comparison stars. Poor measurements are skipped by AAVSO submission by default.Common causes:- Low SNR. Increase the per-frame exposure time. For a Seestar S50, typical good SNR on a 12th-magnitude target requires at least 60–120 seconds of total integration. Check sky conditions — thin cloud or poor seeing dramatically reduces SNR.
-
Too few comparison stars. If the field has fewer than three AAVSO VSP comparison stars, the pipeline falls back to Gaia DR3. Verify that
photometry.field_radiusis large enough to include comparison stars, and thatphotometry.mag_limitis not set too faint for the sky background. -
Large zero-point scatter. High
zp_scatterin the NOTES field indicates the comparison stars are inconsistent — usually caused by rapidly changing clouds or poor atmospheric transparency. The ZP scatter contributes directly to the reported uncertainty. There is no fix except waiting for better conditions.
AAVSO Submission
Submission rejected by WebObs
Submission rejected by WebObs
_response.txt file — AAVSO WebObs typically returns a descriptive HTML error. Common causes:| Cause | Symptom in response | Fix |
|---|---|---|
| Invalid observer code | ”OBSCODE not found” | Verify aavso.observer_code matches exactly what AAVSO issued |
| Target not in VSX | ”star name not recognized” | Check the target name against AAVSO VSX; aliases may differ |
| Date out of range | ”date out of valid range” | Verify the BJD value is correct; clock skew on the node host can corrupt timestamps |
| Auth failure | Login redirect page | Verify aavso.username and aavso.password match current AAVSO website credentials |
python3 scripts/manage.py check-aavso to validate credentials and format before a live submission, and python3 scripts/manage.py batch to preview the exact text that will be POSTed.Safety Manager
Dawn parking not triggering
Dawn parking not triggering
-
Location not configured. Both
safety.observer.latitudeandsafety.observer.longitudemust be non-zero decimal degree values. A value of0.0places the observer at the equator/prime meridian intersection and produces incorrect dawn calculations. -
Sun stays below −18° all night (high-latitude summer). At mid-to-high latitudes in summer, the sun may never reach astronomical twilight (−18° altitude), so
dawn_type: astronomicalnever triggers. Switch to nautical twilight:Options:astronomical(−18°),nautical(−12°),civil(−6°).
SafetyManager stuck in unsafe state after reconnect
SafetyManager stuck in unsafe state after reconnect
safety.disconnect_timeout (default 600 seconds), it triggers an emergency park and enters an unsafe state. The unsafe state persists until the node agent process restarts.Recovery: Restart dashboard.py (or the TelescopeNetNode service on Windows/macOS/Linux installs). The manager initialises to a safe state on startup and re-attaches cleanly.Root causes:- Seestar WiFi drop (most common)
- Seestar app crash causing ALPACA to stop responding
- Host machine sleeping despite sleep prevention configuration
- Improve WiFi signal between the host machine and the Seestar
- Verify that sleep prevention is active (visible in the node dashboard)
- Consider increasing
safety.disconnect_timeoutif brief WiFi drops are expected
Weight Tuning Monitor
Weight-tuning monitor is not running
Weight-tuning monitor is not running
-
API key set?
The key must be non-empty in the environment where the cloud server process runs.
-
Enabled in config? Confirm
tuning.enabled: trueincloud/config.yaml. - Timing: The monitor runs during the nightly maintenance window (typically 2–3 AM UTC). It does not run on demand. Check the cloud server logs the morning after enabling.
-
Check logs: Search the cloud server log for the
cloud.tuninglogger: -
Insufficient data: Both
min_nights_data(default 7) andmin_measurements(default 30) must be satisfied within thelookback_nightswindow before the first tuning run.
Weight changes have no effect on the observation plan
Weight changes have no effect on the observation plan
tuning_state take effect only when the replan loop next runs (every 120 minutes by default). A change made at 2 AM may not affect plans until ~4 AM.Force an immediate rescore:active_weights and last_tuning_run in the response. If last_tuning_run is old or active_weights matches the seed values from config.yaml, the monitor has not run successfully yet.Claude API errors during tuning
Claude API errors during tuning
| HTTP Status | Cause | Resolution |
|---|---|---|
| 429 | Anthropic rate limit | Reduce call frequency by increasing tuning.lookback_nights; or temporarily set tuning.enabled: false |
| 401 | API key invalid or quota exhausted | Verify ANTHROPIC_API_KEY is correct and the Anthropic account has remaining credits |
| Content policy | Evidence brief triggers a refusal (rare) | The apply step is skipped; a warning is logged; check cloud.tuning logger output |
cloud.tuning logger entries at ERROR level.