Search code examples
apache-kafkaconfluent-schema-registryconfluent-cloud

How can I access Confluent Cloud Schema Registry using KafkaTopical?


I am having an error connecting to Confluent Cloud Schema Registry using the KafkaTopical UI (https://www.kafkatopical.com). I keep getting the timeout error in the screenshot when I hit Test Schema Registry. It normally works okay for other cloud providers we've tried.

Popup when trying to connect to Confluent Cloud Schema

Full error:

feign.RetryableException: Read timed out executing GET https://pkc-l6wr6.europe-west2.gcp.confluent.cloud:9092/config/
    at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:110)
    at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:70)
    at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:99)
    at jdk.proxy4.$Proxy275.getGlobalCompatibilityLevel(Unknown Source)
    at com.certak.kafkatopical.logic.kafka.util.KafkaServicesValidation.validateSchemaRegistry(KafkaServicesValidation.java:98)
    at com.certak.kafkatopical.logic.kafka.kbwrapper.KafkaWrapperService.testSchemaRegistry(KafkaWrapperService.java:466)
    at com.certak.kafkatopical.gui.cluster.properties.ClusterPropertiesViewModel.lambda$testSchemaRegistry$7(ClusterPropertiesViewModel.java:132)
    at com.certak.kafkatopical.gui.cluster.properties.ClusterPropertiesViewModel.lambda$_testConnection$3(ClusterPropertiesViewModel.java:108)
    at com.certak.common.javafx.gui.util.BackgroundTask$1.call(BackgroundTask.java:51)
    at com.certak.common.javafx.gui.util.DefaultTaskExecutor$2.call(DefaultTaskExecutor.java:164)
    at javafx.concurrent.Task$TaskCallable.call(Task.java:1426)
    at java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.lang.Thread.run(Thread.java:833)
    at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:704)
    at com.oracle.svm.core.windows.WindowsPlatformThreads.osThreadStartRoutine(WindowsPlatformThreads.java:143)
Caused by: java.net.SocketTimeoutException: Read timed out
    at sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283)
    at sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309)
    at sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
    at sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
    at java.net.Socket$SocketInputStream.read(Socket.java:966)
    at sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478)
    at sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472)
    at sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)
    at sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1460)
    at sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1064)
    at okio.InputStreamSource.read(JvmOkio.kt:93)
    at okio.AsyncTimeout$source$1.read(AsyncTimeout.kt:128)
    at okio.RealBufferedSource.indexOf(RealBufferedSource.kt:430)
    at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.kt:323)
    at okhttp3.internal.http1.HeadersReader.readLine(HeadersReader.kt:29)
    at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:180)
    at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
    at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
    at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
    at feign.okhttp.OkHttpClient.execute(OkHttpClient.java:177)
    at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:100)
    ... 18 more

I tried with the correct apikey and password and I know the Schema Registry exists and is accessible as I've seen a colleague access without problems. Any ideas?


Solution

  • It looks like you've used the brokers URL rather than that of the Schema Registry. That's a guess from the fact that you've specified 9092 as the port, but that's commonly used for brokers.

    You can get the Schema Registry URL and basic auth key/secret in the Stream Governance API section on Confluent Cloud. See screenshot (no port specified, so 443 by default). Hopefully that's all your problem is...

    Confluent Cloud Schema Registry