Forum Discussion
Quartus Programmer 21.1: JTAG Server Error Code 82 – Port 1309 Cannot Be Bound
Hello Farabi_Altera,
Thank you for your detailed response and guidance.
I followed the troubleshooting steps and checked the current status again.
My latest results are:
C:\intelFPGA\21.1\qprogrammer\bin64>jtagconfig
Error when scanning hardware - Server error
C:\intelFPGA\21.1\qprogrammer\bin64>jtagserver --status
Installed JTAG server is 'C:\intelFPGA\21.1\qprogrammer\bin64\jtagserver.exe'
Server is running
Remote clients are disabled
When I run:
jtagserver.exe --foreground
I get:
Unable to bind changedetect socket: 10048
Can't bind to TCP port 1309 - exiting
I then checked port 1309:
netstat -ano | findstr 1309
and received:
TCP 0.0.0.0:1309 0.0.0.0:0 LISTENING 4928
UDP 127.0.0.1:1309 127.0.0.1:1309 4928
So currently the JTAG Server reports that it is running, but jtagconfig still gives "Server error", while port 1309 is occupied by PID 4928.
I have not terminated PID 4928 yet because I want to confirm whether it is the Altera JTAG Server or another process before stopping it.
Could you please advise me on the safest next step to identify and resolve the process using PID 4928?
My goal is to get the USB-Blaster detected by jtagconfig and program my Cyclone IV FPGA.
Thank you for your help.
Hello SandeshKumar, Good diagnostic work — your netstat output tells the story clearly. PID 4928 is holding TCP port 1309, which is why jtagserver.exe --foreground immediately fails with "Can't bind to TCP port 1309". By default, the JTAG Server listens to TCP/IP port 1309, and JTAG client applications connect to the same port AN 939: JTAG Connections Over SSH , so nothing else can own that port while jtagserver needs it.
Here's the safest sequence to identify and resolve this:
Step 1 — Identify PID 4928
Run this in an elevated Command Prompt:
tasklist /FI "PID eq 4928"
This will show you the exact executable name owning that port. You can also cross-check with:
tasklist /SVC /FI "PID eq 4928"
to see if it's a Windows service. Given the symptoms, PID 4928 is almost certainly a stale or orphaned instance of jtagserver.exe itself — the --status command confirms the service is "running", which means the registered Windows service process already has port 1309 bound. Running --foreground then tries to bind a second instance to the same port, which fails with error 10048 (WSAEADDRINUSE). So the conflict is likely jtagserver vs. itself, not a foreign process.
Step 2 — Stop and reinstall the service cleanly
You can verify and control the jtagserver service using the --status, --start, and --stop command-line options, or using the Task Manager → Services tab. Altera FPGA Software Installation and Licensing
From an elevated Command Prompt in your bin64 directory:
Stop the running service: jtagserver.exe --stop
Confirm it stopped: jtagserver.exe --status
Uninstall the service registration: jtagserver.exe --uninstall
Reboot.
Reinstall: jtagserver.exe --install
Start: jtagserver.exe --start
Verify: jtagserver.exe --status then jtagconfig
If --uninstall doesn't work cleanly, you can also delete the service via: sc delete "Altera JTAG Server" followed by a reboot. How do I remove the Altera JTAG Server service from my Windows computer?
Step 3 — If a foreign process is on port 1309
If your firewall or IT policy has blocked or claimed port 1309, remote connections will fail and settings may revert to defaults. In that case, ensure port 1309 is open/unblocked on your firewall. Can't Enable Remote Connections to JTAG Server
Step 4 — Admin rights
To enable or reconfigure the JTAG server on Windows, you need administrator privileges, since a modification to the registry is performed. Do I need administrator privileges to enable a remote JTAG server on a Windows computer? Make sure your Command Prompt is running as Administrator throughout.
Once jtagserver is cleanly restarted and owns port 1309, jtagconfig should enumerate your USB-Blaster and your Cyclone IV will be visible for programming. Let me know what tasklist shows for PID 4928 and we can go from there if needed.