[{"data":1,"prerenderedAt":571},["ShallowReactive",2],{"\u002Fdocs\u002Freference\u002Ftroubleshooting":3},{"id":4,"title":5,"body":6,"description":563,"extension":564,"meta":565,"navigation":566,"path":567,"seo":568,"stem":569,"__hash__":570},"docs\u002Fdocs\u002Freference\u002Ftroubleshooting.md","Troubleshooting",{"type":7,"value":8,"toc":541},"minimark",[9,13,18,23,50,54,57,61,72,132,136,140,147,281,285,292,296,348,352,356,363,424,428,434,438,455,459,462,466,470,477,524,527,531,537],[10,11,5],"h1",{"id":12},"troubleshooting",[14,15,17],"h2",{"id":16},"logging-in","Logging in",[19,20,22],"h3",{"id":21},"the-login-form-returns-to-the-login-page","The login form returns to the login page",[24,25,26,27,31,32,35,36,41,42,45,46,49],"p",{},"Production builds only accept the session cookie over HTTPS (or on ",[28,29,30],"code",{},"localhost","). If you open the\ndashboard as ",[28,33,34],{},"http:\u002F\u002F\u003Cserver-ip>:18232",", the browser drops the cookie and every page redirects\nback to the login. Put the server behind ",[37,38,40],"a",{"href":39},"\u002Fdocs\u002Fserver\u002Freverse-proxy","HTTPS",", or open\n",[28,43,44],{},"http:\u002F\u002Flocalhost:18232"," on the server itself (for example through an SSH tunnel:\n",[28,47,48],{},"ssh -L 18232:localhost:18232 \u003Cserver>",").",[19,51,53],{"id":52},"everyone-was-logged-out","Everyone was logged out",[24,55,56],{},"Sessions are kept in memory, so every server restart or update ends all sessions. Log in again.",[19,58,60],{"id":59},"i-lost-the-admin-password","I lost the admin password",[24,62,63,64,67,68,71],{},"If ",[28,65,66],{},"data\u002Finitial_admin_credentials"," still exists and you never changed the password, it's in\nthere. Otherwise, set a new password directly in the database. With Docker, replace\n",[28,69,70],{},"NEW-PASSWORD"," and run:",[73,74,80],"pre",{"className":75,"code":76,"filename":77,"language":78,"meta":79,"style":79},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker exec netignite-server bun -e '\n  const { Database } = require(\"bun:sqlite\");\n  const hash = await Bun.password.hash(\"NEW-PASSWORD\", { algorithm: \"bcrypt\", cost: 12 });\n  new Database(\"data\u002Fdb.sqlite\").run(\"UPDATE users SET password_hash = ? WHERE username = ?\", [hash, \"admin\"]);\n'\n","Terminal","bash","",[28,81,82,108,114,120,126],{"__ignoreMap":79},[83,84,87,91,95,98,101,104],"span",{"class":85,"line":86},"line",1,[83,88,90],{"class":89},"sBMFI","docker",[83,92,94],{"class":93},"sfazB"," exec",[83,96,97],{"class":93}," netignite-server",[83,99,100],{"class":93}," bun",[83,102,103],{"class":93}," -e",[83,105,107],{"class":106},"sMK4o"," '\n",[83,109,111],{"class":85,"line":110},2,[83,112,113],{"class":93},"  const { Database } = require(\"bun:sqlite\");\n",[83,115,117],{"class":85,"line":116},3,[83,118,119],{"class":93},"  const hash = await Bun.password.hash(\"NEW-PASSWORD\", { algorithm: \"bcrypt\", cost: 12 });\n",[83,121,123],{"class":85,"line":122},4,[83,124,125],{"class":93},"  new Database(\"data\u002Fdb.sqlite\").run(\"UPDATE users SET password_hash = ? WHERE username = ?\", [hash, \"admin\"]);\n",[83,127,129],{"class":85,"line":128},5,[83,130,131],{"class":106},"'\n",[14,133,135],{"id":134},"agents","Agents",[19,137,139],{"id":138},"the-agent-doesnt-come-online","The agent doesn't come online",[24,141,142,143,146],{},"Check the server log (",[28,144,145],{},"docker logs netignite-server",") and, for the ESP32, the serial monitor.",[148,149,150,163],"table",{},[151,152,153],"thead",{},[154,155,156,160],"tr",{},[157,158,159],"th",{},"Symptom",[157,161,162],{},"Cause and fix",[164,165,166,185,209,244,254,265],"tbody",{},[154,167,168,175],{},[169,170,171,172],"td",{},"ESP32 logs ",[28,173,174],{},"Missing credentials!",[169,176,177,180,181,184],{},[28,178,179],{},"C_CONTROL_SERVER_AUTH_ID"," or ",[28,182,183],{},"C_CONTROL_SERVER_AUTH_SECRET"," is empty.",[154,186,187,196],{},[169,188,171,189,192,193],{},[28,190,191],{},"Websocket Connected"," and right after ",[28,194,195],{},"Websocket Disconnected!",[169,197,198,199,203,204,208],{},"The server rejected the credentials. Check that the ID is the numeric ",[200,201,202],"strong",{},"Connection ID"," and that the secret is exactly the one shown when the agent was created. If you're unsure, ",[37,205,207],{"href":206},"\u002Fdocs\u002Fguides\u002Fagents#changing-the-secret","regenerate the secret"," and reflash.",[154,210,211,217],{},[169,212,213,214],{},"ESP32 only logs ",[28,215,216],{},"Websocket Disconnected! Retrying in 60 seconds...",[169,218,219,220,223,224,227,228,231,232,235,236,239,240,49],{},"The connection fails before the handshake: wrong host or port, ",[28,221,222],{},"USE_SSL"," doesn't match the port (",[28,225,226],{},"true"," for ",[28,229,230],{},"443",", ",[28,233,234],{},"false"," for a plain ",[28,237,238],{},"18232","), or the server certificate isn't trusted (see ",[37,241,243],{"href":242},"\u002Fdocs\u002Fagents\u002Fesp32#certificate-bundle","Certificate bundle",[154,245,246,251],{},[169,247,171,248],{},[28,249,250],{},"NTP time sync timed out",[169,252,253],{},"The board has no internet access, DNS doesn't work, or NTP (UDP port 123) is blocked. TLS connections fail until the time is synced; the agent keeps retrying on its own once the network works.",[154,255,256,262],{},[169,257,171,258,261],{},[28,259,260],{},"WiFi lost connection"," repeatedly",[169,263,264],{},"Wrong SSID or password, or the network is 5 GHz only.",[154,266,267,274],{},[169,268,269,270,273],{},"The server logs ",[28,271,272],{},"Agent '\u003Cid>' connected",", but the dashboard shows offline",[169,275,276,277,280],{},"The status refreshes every 20 seconds; use the ",[200,278,279],{},"Ping"," button to refresh it.",[19,282,284],{"id":283},"the-agent-disconnects-about-once-a-minute","The agent disconnects about once a minute",[24,286,287,288,291],{},"A reverse proxy is closing idle WebSocket connections. Raise its idle\u002Fread timeout above 60\nseconds, as shown in ",[37,289,290],{"href":39},"HTTPS & Reverse Proxy",".",[19,293,295],{"id":294},"the-esp32-firmware-doesnt-build","The ESP32 firmware doesn't build",[297,298,299,312,328],"ul",{},[300,301,302,305,306,309,310,291],"li",{},[200,303,304],{},"The certificate bundle can't be generated:"," the first build installs the Python package\n",[28,307,308],{},"cryptography"," into PlatformIO's environment and needs internet access for that. See\n",[37,311,243],{"href":242},[300,313,314,320,321,324,325,291],{},[200,315,316,319],{},[28,317,318],{},"config\u002Fconfig.h"," not found:"," copy ",[28,322,323],{},"src\u002Fconfig\u002Fconfig.sample.h"," to ",[28,326,327],{},"src\u002Fconfig\u002Fconfig.h",[300,329,330,343,344,347],{},[200,331,332,333,231,336,180,339,342],{},"Errors about ",[28,334,335],{},"IPv6Address",[28,337,338],{},"enableIpV6",[28,340,341],{},"beginSslWithBundle",":"," you're building with\nArduino-ESP32 core 3.x. Use PlatformIO's official ",[28,345,346],{},"espressif32"," platform, which ships core 2.x.",[14,349,351],{"id":350},"waking-devices","Waking devices",[19,353,355],{"id":354},"the-device-doesnt-wake-up","The device doesn't wake up",[24,357,358,362],{},[359,360,361],"em",{},"Wakeup command sent"," only means the agent sent the packet. If the device stays off:",[364,365,366,376,386,392,405,411],"ol",{},[300,367,368,371,372,291],{},[200,369,370],{},"Wake-on-LAN enabled?"," Check the BIOS\u002FUEFI and the network driver settings, and disable\nErP\u002FEuP power saving. See ",[37,373,375],{"href":374},"\u002Fdocs\u002Fguides\u002Fdevices#preparing-a-device","Preparing a device",[300,377,378,381,382,385],{},[200,379,380],{},"Right MAC address?"," Use the MAC of the ",[200,383,384],{},"wired"," network card the device is connected with,\nnot its WiFi adapter.",[300,387,388,391],{},[200,389,390],{},"Same network?"," The agent must be in the same subnet as the device. Magic packets are\nbroadcasts and don't cross routers or VLANs.",[300,393,394,397,398,401,402,291],{},[200,395,396],{},"Right port?"," Most devices listen on ",[28,399,400],{},"9","; some only react to ",[28,403,404],{},"7",[300,406,407,410],{},[200,408,409],{},"Power state."," Some devices only wake from sleep or hibernation, not from a full shutdown.\nOn Windows, disabling Fast Startup often helps.",[300,412,413,416,417,180,420,423],{},[200,414,415],{},"Test locally."," Send a magic packet from another computer in the same network (for example\nwith ",[28,418,419],{},"wakeonlan",[28,421,422],{},"etherwake","). If that doesn't work either, the problem is the device, not\nNetIgnite.",[19,425,427],{"id":426},"agent-is-offline","\"Agent is offline\"",[24,429,430,431,291],{},"The device's agent isn't connected. See ",[37,432,139],{"href":433},"#the-agent-doesnt-come-online",[19,435,437],{"id":436},"wakeup-command-failed-wakeup-failed-invalid-mac-address-or-port","\"Wakeup command failed: Wakeup failed: Invalid MAC address or port\"",[24,439,440,441,180,444,447,448,324,451,454],{},"The ESP32 agent only accepts MAC addresses like ",[28,442,443],{},"AA:BB:CC:DD:EE:FF",[28,445,446],{},"AA-BB-CC-DD-EE-FF"," and\nports from ",[28,449,450],{},"1",[28,452,453],{},"65535",". Edit the device and fix the value.",[19,456,458],{"id":457},"failed-to-send-wakeup-command","\"Failed to send wakeup command\"",[24,460,461],{},"The agent didn't answer within 5 seconds, often because it was busy with status checks or its\nconnection had just dropped. Try again. If it keeps happening, check the agent's connection.",[14,463,465],{"id":464},"device-status","Device status",[19,467,469],{"id":468},"a-running-device-shows-as-offline","A running device shows as offline",[24,471,472,473,476],{},"The ESP32 agent pings the device's IPv6 link-local address that it derives from the MAC address\n(EUI-64). The device shows as ",[28,474,475],{},"offline"," if it doesn't use that address or doesn't answer pings:",[297,478,479,492,502,516],{},[300,480,481,484,485,488,489,291],{},[200,482,483],{},"Windows"," uses random interface identifiers. Switch to MAC-based ones in an elevated prompt with\n",[28,486,487],{},"netsh interface ipv6 set global randomizeidentifiers=disabled",", and allow the firewall rule\n",[359,490,491],{},"File and Printer Sharing (Echo Request - ICMPv6-In)",[300,493,494,497,498,501],{},[200,495,496],{},"Linux with NetworkManager:"," ",[28,499,500],{},"nmcli connection modify \u003Cconnection> ipv6.addr-gen-mode eui64",",\nthen reconnect.",[300,503,504,507,508,511,512,515],{},[200,505,506],{},"Linux with systemd-networkd:"," set ",[28,509,510],{},"IPv6LinkLocalAddressGenerationMode=eui64"," in the\n",[28,513,514],{},"[Network]"," section.",[300,517,518,521,522,291],{},[200,519,520],{},"IPv6 disabled"," on the device or a firewall that blocks ICMPv6 echo requests also causes\n",[28,523,475],{},[24,525,526],{},"Waking the device works regardless of the status.",[19,528,530],{"id":529},"every-status-is-unknown","Every status is \"unknown\"",[24,532,533,534,536],{},"The devices' agent is offline, or it didn't answer within 5 seconds. Check the agent's status on\nthe ",[200,535,135],{}," page.",[538,539,540],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":79,"searchDepth":110,"depth":110,"links":542},[543,548,553,559],{"id":16,"depth":110,"text":17,"children":544},[545,546,547],{"id":21,"depth":116,"text":22},{"id":52,"depth":116,"text":53},{"id":59,"depth":116,"text":60},{"id":134,"depth":110,"text":135,"children":549},[550,551,552],{"id":138,"depth":116,"text":139},{"id":283,"depth":116,"text":284},{"id":294,"depth":116,"text":295},{"id":350,"depth":110,"text":351,"children":554},[555,556,557,558],{"id":354,"depth":116,"text":355},{"id":426,"depth":116,"text":427},{"id":436,"depth":116,"text":437},{"id":457,"depth":116,"text":458},{"id":464,"depth":110,"text":465,"children":560},[561,562],{"id":468,"depth":116,"text":469},{"id":529,"depth":116,"text":530},"Solutions for common NetIgnite problems: logins, agents that don't connect, devices that don't wake, and wrong status.","md",{},{"title":5},"\u002Fdocs\u002Freference\u002Ftroubleshooting",{"title":5,"description":563},"docs\u002Freference\u002Ftroubleshooting","dV8shv8Yr_gdy0vYXeA0IUMK5q3qxm7Iviihqdqa9pU",1792355946372]