pouledodue opened a new issue #5094: Improve response of REST API on AvroSchemaBasedCompatibilityCheck URL: https://github.com/apache/pulsar/issues/5094 posting non-compatible schema outputs a unuseful html page with 500 code. It should output maybe a 409 with the compatibility error shown in json output or something beautifully helpful for a developer POST to ``` 'http://localhost:8080/admin/v2/schemas/abc/def/x2/schema' ``` Get response ``` b'\n\n\nError 500 Internal Server Error\n\n

HTTP ERROR 500

\n

Problem accessing /admin/v2/schemas/abc/def/x2/schema. Reason:\n

    Internal Server Error


Powered by Jetty:// 9.4.12.v20180830
\n\n\n\n' ``` Developer needs to read the logs to understand the error ``` 17:59:36.291 [ForkJoinPool.commonPool-worker-0] ERROR org.apache.pulsar.broker.service.schema.AvroSchemaBasedCompatibilityCheck - Error during schema compatibility check: Unable to read schema: { "type" : "record", "name" : "XSchemaV0", "fields" : [ { "name" : "fur4", "type" : "string" } ] } using schema: { "type" : "record", "name" : "XSchemaV0", "fields" : [ { "name" : "fur2", "type" : "string" } ] } org.apache.avro.SchemaValidationException: Unable to read schema: { "type" : "record", "name" : "XSchemaV0", "fields" : [ { "name" : "fur4", "type" : "string" } ] } using schema: { "type" : "record", "name" : "XSchemaV0", "fields" : [ { "name" : "fur2", "type" : "string" } ] } at org.apache.avro.ValidateMutualRead.canRead(ValidateMutualRead.java:70) ~[org.apache.avro-avro-1.8.2.jar:1.8.2] at org.apache.avro.ValidateMutualRead.validate(ValidateMutualRead.java:43) ~[org.apache.avro-avro-1.8.2.jar:1.8.2] at org.apache.avro.ValidateLatest.validate(ValidateLatest.java:51) ~[org.apache.avro-avro-1.8.2.jar:1.8.2] at org.apache.pulsar.broker.service.schema.AvroSchemaBasedCompatibilityCheck.isCompatible(AvroSchemaBasedCompatibilityCheck.java:56) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at org.apache.pulsar.broker.service.schema.AvroSchemaCompatibilityCheck.isCompatible(AvroSchemaCompatibilityCheck.java:26) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at org.apache.pulsar.broker.service.schema.AvroSchemaBasedCompatibilityCheck.isCompatible(AvroSchemaBasedCompatibilityCheck.java:42) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at org.apache.pulsar.broker.service.schema.AvroSchemaCompatibilityCheck.isCompatible(AvroSchemaCompatibilityCheck.java:26) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at org.apache.pulsar.broker.service.schema.SchemaRegistryServiceImpl.isCompatible(SchemaRegistryServiceImpl.java:180) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at org.apache.pulsar.broker.service.schema.SchemaRegistryServiceImpl.lambda$checkCompatibilityWithLatest$8(SchemaRegistryServiceImpl.java:189) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602) ~[?:1.8.0_212] at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577) ~[?:1.8.0_212] at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_212] at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) ~[?:1.8.0_212] at org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage.lambda$null$5(BookkeeperSchemaStorage.java:187) ~[org.apache.pulsar-pulsar-broker-2.4.0.jar:2.4.0] at java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:822) [?:1.8.0_212] at java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:797) [?:1.8.0_212] at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443) [?:1.8.0_212] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_212] at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_212] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_212] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_212] ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: users@infra.apache.org With regards, Apache Git Services