# Second node issue: Peer ID did not match requested ID

**URL:** <https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171>\
**Category:** FAQ\
**Tags:** error-codes, multiple-nodes\
**Created:** [November 22, 2025, 10:31pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171 "2025-11-22T22:31:15Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![cronos](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/cronos/32/1125_2.png) [@cronos](https://forum.storj.io/u/cronos)\
**Post date:** [November 22, 2025, 10:31pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/1 "2025-11-22T22:31:15Z")

</div>

Hello community,

I am trying to set up a new node (`storagenode16T`) on my server, but I keep getting the following error in the logs:

rpc: tls peer certificate verification: tlsopts: peer ID did not match requested ID

**Here is the exact procedure I followed:**

1. I created the identity with:

identity create storagenode

1. This generated the 4 files: `ca.cert`, `ca.key`, `identity.cert`, and `identity.key`.
2. Then I executed the setup command as root, pointing to the exact location of the credentials (same way I did with my first node, which is still working fine):

sudo docker run --rm -e SETUP=“true” \   
–user $(id -u):$(id -g) \   
–mount type=bind,source=/home/giga/.local/share/storj/identity/storagenode16T,destination=/app/identity \   
–mount type=bind,source=/media/giga/DATA16,destination=/app/config \   
–name storagenode16T storjlabs/storagenode:latest

 \* After this ran successfully, I saw that the new disk automatically created the folders and files required for the node to function.  
3. Then I started the container with:

sudo docker run -d --restart unless-stopped --stop-timeout 300 \   
-p 28968:28967/tcp \   
-p 28968:28967/udp \   
-p 192.168.50.10:14004:14002 \   
-e WALLET=“0xd976e1bCCF45782ACE63611f738D0880587C2617” \   
-e [EMAIL="mailteracom@gmail.com](mailto:EMAIL=%22mailteracom@gmail.com)" \   
-e ADDRESS=“[storjtnxxx.ddns.net:28968](http://storjtnxxx.ddns.net:28968)” \   
-e STORAGE=“15.5TB” \   
–user $(id -u):$(id -g) \   
–mount type=bind,source=/home/giga/.local/share/storj/identity/storagenode16T,destination=/app/identity \   
–mount type=bind,source=/media/giga/DATA16,destination=/app/config \   
–name storagenode16T storjlabs/storagenode:latest

 ![Screenshot 2025-11-22 160300](https://storj-s3.bcdn.literatehosting.net/original/3X/f/4/f45f75bc3db62287a02a9c1245bcbb2150ff522c.png)

 \* Running `sudo docker ps` shows the container is up and running, but when I check the logs with:

 ![Screenshot 2025-11-22 160329](https://storj-s3.bcdn.literatehosting.net/original/3X/b/0/b058a6fd187107d1afc7a09b038659ce49d12dea.png)

sudo docker logs storagenode16T --tail 50 -f

 ![Screenshot 2025-11-22 160530](https://storj-s3.bcdn.literatehosting.net/original/3X/6/9/699517ba5fd90b0d472dd08e5867a8b293e6ed27.png)

1. I get the certificate error mentioned above.

**Additional details:**

- Router port 28968 is open and forwarded correctly.
- I created a new account in No-IP and it is working.
- My first node (`storagenode2`) is still running fine on the same server.

I am not sure what is wrong with my second node. According to Copilot, it looks like a credential/identity issue, but I am not an expert and would appreciate guidance from the community.

 ![Screenshot 2025-11-22 160129](https://storj-s3.bcdn.literatehosting.net/original/3X/2/e/2e67529cb5d16d26d8b7ad35e7e1fbeece1c75e0.png)  
 ![nodo](https://storj-s3.bcdn.literatehosting.net/original/3X/a/8/a83f360cb010910313e85a6a6fef9739afc8d0f4.jpeg)

Thanks in advance for your help!

---

<div class="post-metadata">

**Author:** ![alpharabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alpharabbit/32/1129_2.png) [@alpharabbit](https://forum.storj.io/u/alpharabbit)\
**Post date:** [November 23, 2025, 12:42am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/2 "2025-11-23T00:42:56Z")

</div>

Wasn’t port 28968 already used for your second node from other thread? 🤔  
Each node needs a unique external port, please check this.

---

<div class="post-metadata">

**Author:** ![MarviBiene](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/marvibiene/32/1124_2.png) [@MarviBiene](https://forum.storj.io/u/MarviBiene)\
**Post date:** [November 23, 2025, 1:41am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/3 "2025-11-23T01:41:52Z")

</div>

I had the same error when I used the same port for two nodes. Please confirm that you have set the right port and that the desired node gets the right traffic

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [November 23, 2025, 4:23am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/4 "2025-11-23T04:23:55Z")

</div>

> [@cronos](#):
>
> identity create storagenode

The name “storagenode” here is matching the folder, where the identity will be created, so if you create a second identity you need either use a different name or move a previously generated identity from that folder before trying to generate a new one with the same name.  
By the way, it’s advisable to move the identity to the disk with its data to do not confuse nodes or do not lose the node, if your home folder will be cleared for any reason: the identity and its data cannot be used without each other anyway.

---

<div class="post-metadata">

**Author:** ![cronos](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/cronos/32/1125_2.png) [@cronos](https://forum.storj.io/u/cronos)\
**Post date:** [November 23, 2025, 7:14pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/5 "2025-11-23T19:14:40Z")

</div>

> [@alpharabbit](#):
>
> Wasn’t port 28968 already used for your second node from other thread? 🤔  
> Each node needs a unique external port, please check this.

On the first node I used port 28967 and it’s working, on the second node which is the one I’m having problems I’m using 28968.

---

<div class="post-metadata">

**Author:** ![alpharabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alpharabbit/32/1129_2.png) [@alpharabbit](https://forum.storj.io/u/alpharabbit)\
**Post date:** [November 23, 2025, 8:09pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/6 "2025-11-23T20:09:33Z")

</div>

How about server internal address? Is this set to 28967 in config file?

```auto
# public address to listen on
server.address: :28967

```

---

<div class="post-metadata">

**Author:** ![cronos](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/cronos/32/1125_2.png) [@cronos](https://forum.storj.io/u/cronos)\
**Post date:** [November 23, 2025, 8:48pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/7 "2025-11-23T20:48:14Z")

</div>

> [@cronos](#):
>
> -p 28968:28967/tcp   
> -p 28968:28967/udp \

Are you referring to this one?  
-p 28968:28967/tcp   
-p 28968:28967/udp \

---

<div class="post-metadata">

**Author:** ![alpharabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alpharabbit/32/1129_2.png) [@alpharabbit](https://forum.storj.io/u/alpharabbit)\
**Post date:** [November 23, 2025, 9:01pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/8 "2025-11-23T21:01:31Z")

</div>

Default for server.address is :7777. So it must be set either in config file or docker run command.

---

<div class="post-metadata">

**Author:** ![RecklessD](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/recklessd/32/1130_2.png) [@RecklessD](https://forum.storj.io/u/RecklessD)\
**Post date:** [November 23, 2025, 9:10pm UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/9 "2025-11-23T21:10:31Z")

</div>

No, the setting @alpharabbit is referring to, is located in config.xml file.

---

<div class="post-metadata">

**Author:** ![Alexey](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alexey/32/41_2.png) [@Alexey](https://forum.storj.io/u/Alexey)\
**Post date:** [November 24, 2025, 5:14am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/10 "2025-11-24T05:14:09Z")

</div>

Please make sure that these nodes have different NodeIDs.

> [@alpharabbit](#):
>
> So it must be set either in config file or docker run command.

The config file will be created with the first run, and it will have this value:

> [@alpharabbit](#):
>
> ```auto
> # public address to listen on
> server.address: :28967
> 
> ```

---

<div class="post-metadata">

**Author:** ![alpharabbit](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/alpharabbit/32/1129_2.png) [@alpharabbit](https://forum.storj.io/u/alpharabbit)\
**Post date:** [November 24, 2025, 6:57am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/11 "2025-11-24T06:57:40Z")

</div>

I wonder why 28967 is not the default? Help output is confusing when 28967 is used in setup command and tutorials.

```auto
     --server.address string public address to listen on (default ":7777")

```

---

<div class="post-metadata">

**Author:** ![RecklessD](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/recklessd/32/1130_2.png) [@RecklessD](https://forum.storj.io/u/RecklessD)\
**Post date:** [November 24, 2025, 7:29am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/12 "2025-11-24T07:29:09Z")

</div>

> [@cronos](#):
>
> type=bind,source=/home/giga/.local/share/storj/identity/storagenode16T,destination=/app/identity  
> –mount type=bind,source=/media/giga/DATA16,destination=/app/config \

It’s a new node. Your config all looks correct. So, it should run. Maybe remove contents of config directory and delete identity, start again.

I would do as @Alexey mentioned and store identity on same HDD as data, on your system, create folder “/media/giga/DATA16/config” and “/media/giga/DATA16/identity”. And update your docker commands to suit.

Create a new identity, copy the files into “/media/giga/DATA16/identity”.

Modify the docker commands to suit new folders.

---

<div class="post-metadata">

**Author:** ![elek](https://storj.bcdn.literatehosting.com/user_avatar/forum.storj.io/elek/32/9189_2.png) [@elek](https://forum.storj.io/u/elek)\
**Post date:** [December 8, 2025, 11:01am UTC](https://forum.storj.io/t/second-node-issue-peer-id-did-not-match-requested-id/31171/13 "2025-12-08T11:01:06Z")

</div>

You can also debug identity related issues with `storj-id` binary:

> **[Release v1.3.0 · elek/storj-id](https://github.com/elek/storj-id/releases/tag/v1.3.0)**
>
> Changelog
> 
> b7d70b2 clarify that piece-id is the same as base32
> df4b9da support new line, even if from/to are both specified

It accepts both urls (like `storj-id localhost:29867`) and cert files (like `storj-id identity.cert`).

The output of the two should be the same, if you use the right identity.

(it prints out the id in multiple format bu default, check the nodeid line)
