Can´t share files in private swarm unless peers are directly connected

I successfully created a swarm key and configured 3 peers.

Peer 1 is connected to peer 2, peer 2 is connected to peer 3.

They can only discover files if they are directly connected to the peer. I.E. Peer 1 can´t access files of Peer 3 and Peer 3 can´t access files of Peer 1.
ipfs cat or ipfs get just get stuck in those cases

Here are my versions just in case:

Peers 1 and 2 are running:

go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/windows
Golang version: go1.12.7

Peer 3 is running:

go-ipfs version: 0.4.22-
Repo version: 7
System version: amd64/linux
Golang version: go1.12.7

You should add a bootstrap node with same swarm key that can connect to both peers.

your confuguration have to work.
Files of peer 1 are discovered through peer 2 from peer 3.
When you connect your node to the public Ipfs network you are not connecting to “all” the nodes available, but just on a subset of them. Through this subset you can retrieve files stored on nodes on which your node is not directly connected