# Troubleshooting > **Terakhir Diperbarui:** 2026-06-29 --- ## Agent gagal kirim laporan — HTTP 500 Internal Server Error **Gejala:** `UserAgent.ps1` → `Failed to ingest agent report`; asset jadi stale. **Penyebab umum (2026-07-08):** Unique index primary owner — owner manual di UI + `logged_in_user` agent berbeda. **Fix server (deployed):** `asset_service._assign_user` tidak menimpa owner `assigned_by=manual`. Update kode + restart `geonet-collector`, lalu: ```powershell & "$env:ProgramData\GeoNetAgent\UserAgent.ps1" ``` **Verifikasi:** response `status: accepted`; UI last_seen terbarui; owner manual tetap. --- ## Agent gagal kirim laporan — "Cannot connect" **Kemungkinan:** 1. URL di `config.json` salah 2. Token tidak cocok dengan `AGENT_BEARER_TOKEN` di collector ```powershell # Cek config Get-Content "$env:ProgramData\GeoNetAgent\config.json" # Test manual (dari endpoint) & "$env:ProgramData\GeoNetAgent\UserAgent.ps1" # Cek koneksi ke server Test-NetConnection agent.gisportal.id -Port 443 ``` --- ## File `.ps1` di Nginx terpotong — `$env:` hilang **Penyebab:** Nginx menginterpretasikan `$env:` sebagai variabel Nginx SSI dan memotong respons. **Fix:** Pastikan nginx config untuk `agent.gisportal.id` memiliki `ssi off`: ```nginx location /install/ { ssi off; alias /var/www/agent-install/; } ``` **Cara deteksi:** Download file `.ps1` dari URL, bandingkan dengan source lokal. Jika ada teks yang hilang setelah `$env:`, ini masalahnya. --- ## Heredoc via SSH PowerShell — Variable $ hilang **Penyebab:** PowerShell menginterpretasikan `$` sebelum dikirim ke SSH. **Solusi:** Upload file via SCP: ```powershell scp -o "MACs=hmac-sha1" "D:\path\to\file.sh" "root@10.100.1.24:/path/on/server/file.sh" ``` --- ## SCP error "unknown option -- m" Windows SCP tidak support flag `-m`. Gunakan `-o "MACs=hmac-sha1"`: ```powershell scp -o "MACs=hmac-sha1" source destination ``` --- ## Agent auto-update tidak berjalan **Cek:** ```powershell # Cek versi lokal Get-Content "$env:ProgramData\GeoNetAgent\VERSION" # Cek manifest server (harus accessible) Invoke-WebRequest "https://agent.gisportal.id/install/manifest.json" -UseBasicParsing | Select-Object -ExpandProperty Content ``` **Auto-update hanya berjalan saat `UserAgent.ps1` dieksekusi** (setiap 3 jam via Scheduled Task). Jika task tidak running: ```powershell Get-ScheduledTask -TaskName "GeoNetAgent-Report" | Select State Start-ScheduledTask -TaskName "GeoNetAgent-Report" ``` --- ## Collector container tidak mau start ```bash # Cek exit code docker ps -a --filter name=geonet-collector # Cek log docker logs geonet-collector --tail 100 # Cek DATABASE_URL valid docker exec geonet-collector python -c "from app.config import settings; print(settings.database_url)" # Test koneksi DB dari container docker exec geonet-collector psql "$DATABASE_URL" -c "SELECT 1" ``` --- ## Asset duplikat muncul setelah split hardware **Penyebab:** Laptop dengan dual hardware (misalnya laptop Dell + PC Gigabyte dalam satu unit) — sesuai ADR-002. **Cara split:** ```bash docker exec geonet-collector python /app/scripts/split_asset_by_hardware.py ``` Lihat `ADR-002` untuk detail keputusan. --- ## View `v_asset_hardware_latest` tidak ada di DB Migration 004 mungkin belum diapply di environment ini. ```bash ssh -m hmac-sha1 root@10.100.1.25 -p 22 psql -U geonet_collector -d geonetagent_dev -c "\dv" # Jika tidak ada v_asset_hardware_latest: psql -U geonet_collector -d geonetagent_dev -f /tmp/004_view_hardware_latest.sql ``` --- ## Perintah Darurat ```bash # Restart collector docker restart geonet-collector # Nginx reload nginx -t && nginx -s reload # Cek semua container docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" ```