Free5gc: http2: server connection error from ip connection error: PROTOCOL_ERROR

Hello,

I am getting this error message when I am running free5gc I did not thought that it’s very important to fix it since I was able to ping using the tunnel ueransim.
Now I need to fixed it because I am trying to send multiple request from NF to NF and I am getting the same error message:
“http2: server connection error from ip connection error: PROTOCOL_ERROR”

Your help is much appreciated.

Hi @abousselmi did you faced this issue before? Thank you

Hi @nathalie21005
This https://github.com/free5gc/free5gc-compose/issues/32 looks like a similar issue.
Please check it out.

Hi @abousselmi, thank you for your help but I still have the same issue and I am able to ping using the tunnel I got the connection when I run the docker compose.

Thank you

Hi @nathalie21005

Can you do a “git diff” in free5gc-compose to see if there is any changes in the configuration files ?

Yes I did there is no changes. @abousselmi

Hi @nathalie21005

Ok, can you then provide more error logs, so at least we can understand which NF is raising the error ? Is it raised right after “docker-compose up” ? or after creating a PDU session ? or in between ?

Hi @abousselmi

It’s NRF raising this error and after docker-compose up before the pdu session
nrf | 2022/01/31 16:54:03 http2: server connection error from 10.100.200.8:40290: connection error: PROTOCOL_ERROR

What NF is the 10.100.200.8 ?

Hi @abousselmi, it’s AUSF NF

Sorry for interrupt but does free5gc-compose support http/2? What I mean, when you enter any NF container and try to check the http version of any other Nf, do you get http2 or http1.1?
this is the command: curl -I --http2 -s http://nfip:port | grep HTTP

Thank you

The application layer protocol and shouldn’t be a concern for docker. As for the http version, when I execute the command that you provided with more logs, this is what I get:

curl -vvv --http2 -s http://10.100.200.10:8000
* Rebuilt URL to: http://10.100.200.10:8000/
*   Trying 10.100.200.10...
* TCP_NODELAY set
* Connected to 10.100.200.10 (10.100.200.10) port 8000 (#0)
> GET / HTTP/1.1
> Host: 10.100.200.10:8000
> User-Agent: curl/7.58.0
> Accept: */*
> Connection: Upgrade, HTTP2-Settings
> Upgrade: h2c
> HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
>
< HTTP/1.1 101 Switching Protocols
< Connection: Upgrade
< Upgrade: h2c
* Received 101
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
< HTTP/2 404
< content-type: text/plain
< content-length: 18
< date: Wed, 02 Feb 2022 14:11:08 GMT
<
* Connection #0 to host 10.100.200.10 left intact
404 page not found

The upgrade to http2 is successful. I don’t get a protocol error on the ausf side (10.100.200.10).

In your case, does this curl request trigger a protocol error on the ausf ?

Hi @abousselmi, yeah my question about the http version not related directly to the error but I believe since free5gc is based on http1.1 upgrade to h2c not http2, so sending multiple requests we will get the error mentioned in the title.