io.netty.handler.codec.http2.Http2Exception: Unexpected HTTP/1.x request: GET /

Viewed 5462

I want to test Zeebe (camunda version) then I followed the steps described on the following documentation. In a nutshell, I am running Zeebe as a docker container based on the command docker run --name zeebe -p 26500:26500 camunda/zeebe:latest.

Looking at the initial logs, everything seems to be working fine. However, when I try to access the broker using Chrome, I can see the following error on the logs:

Mar 10, 2020 1:53:18 PM io.grpc.netty.NettyServerTransport notifyTerminated
INFO: Transport failed
io.netty.handler.codec.http2.Http2Exception: Unexpected HTTP/1.x request: GET / 
    at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:103)
    at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:302)
    at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:239)
    at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:438)
    at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:505)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:444)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:283)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1421)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:794)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:424)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:326)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Unknown Source)

I checked the Zeebe status using zbctl (zbctl status --insecure) and it looks healthy:

Cluster size: 1
Partitions count: 1
Replication factor: 1
Gateway version: 0.23.0-alpha2
Brokers:
  Broker 0 - 172.17.0.2:26501
    Version: 0.23.0-alpha2
    Partition 1 : Leader

Has anyone seen this issue before?

2 Answers

There is nothing to access in the broker using a browser. The only thing the broker has is a gRPC command API. You need to use either zbctl or one of the language clients to communicate with it.

If you are looking for a web GUI to interact with, then you want to use zeebe-docker-compose with the "operate" or "simple-monitor" profile. Those are web front-ends that allow you to inspect and (to some degree) interact with the broker.

Apparently, browser is sending plain old http/1.x request. Try it with something more flexible, like curl:

curl -I -k --http2 https://yourhost
Related