# Exception related to pk.mode and delete.enabled

**URL:** https://community.cratedb.com/t/exception-related-to-pk-mode-and-delete-enabled/1827
**Category:** CrateDB
**Created:** [August 2, 2024, 6:49am UTC](https://community.cratedb.com/t/exception-related-to-pk-mode-and-delete-enabled/1827 "2024-08-02T06:49:56Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![gorde.akshay](https://avatars.discourse-cdn.com/v4/letter/g/c4cdca/32.png) [@gorde.akshay](https://community.cratedb.com/u/gorde.akshay)
#### Post date: [August 2, 2024, 6:49am UTC](https://community.cratedb.com/t/exception-related-to-pk-mode-and-delete-enabled/1827/1 "2024-08-02T06:49:56Z")

</div>

I have configured JSON as below

```json
{
  "name": "cratedb-connector",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "topics": "mytopic",
    "connection.url":"jdbc:postgresql://localhost:5432/crate?user=crate",
    "tasks.max": "4",
    "insert.mode": "insert",
    "table.name.format": "transactions",
    "pk.mode": "kafka",
    "pk.fields": "eventday,resourceid,id",
    "schemas.enable":"false",
    "errors.tolerance": "all",
    "errors.log.enable": "true",
    "errors.log.include.messages": "true",
    "key.converter":"org.apache.kafka.connect.json.JsonConverter",
    "value.converter":"org.apache.kafka.connect.json.JsonConverter",
    "key.converter.schemas.enable":"false",
    "value.converter.schemas.enable":"false",
    "transforms":"addAuditDate",
    "transforms.addAuditDate.type":"org.apache.kafka.connect.transforms.InsertField$Value",
    "transforms.addAuditDate.timestamp.field":"AUDITDATE",
    "transforms.addAuditDate.timestamp.format":"yyyy-MM-dd'T'HH:mm:ss'Z'"
  }
}

```

but it gives error like

```auto
[2024-08-02 06:45:05,004] ERROR [cratedb-connector|task-3] WorkerSinkTask{id=cratedb-connector-3} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted. Error: Sink connector 'cratedb-connector' is configured with 'delete.enabled=false' and 'pk.mode=kafka' and therefore requires records with a non-null Struct value and non-null Struct schema, but found record at (topic='mytopic',partition=0,offset=20,timestamp=1722577031564) with a HashMap value and null value schema. (org.apache.kafka.connect.runtime.WorkerSinkTask:609)
org.apache.kafka.connect.errors.ConnectException: Sink connector 'cratedb-connector' is configured with 'delete.enabled=false' and 'pk.mode=kafka' and therefore requires records with a non-null Struct value and non-null Struct schema, but found record at (topic='mytopic',partition=0,offset=20,timestamp=1722577031564) with a HashMap value and null value schema.
	at io.confluent.connect.jdbc.sink.RecordValidator.lambda$requiresValue$2(RecordValidator.java:86)
	at io.confluent.connect.jdbc.sink.BufferedRecords.add(BufferedRecords.java:81)
	at io.confluent.connect.jdbc.sink.JdbcDbWriter.write(JdbcDbWriter.java:74)
	at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:90)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:581)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:333)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:234)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:203)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:189)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:244)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
[2024-08-02 06:45:05,004] ERROR [cratedb-connector|task-3] WorkerSinkTask{id=cratedb-connector-3} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:196)
org.apache.kafka.connect.errors.ConnectException: Exiting WorkerSinkTask due to unrecoverable exception.
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:611)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:333)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:234)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:203)
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:189)
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:244)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.apache.kafka.connect.errors.ConnectException: Sink connector 'cratedb-connector' is configured with 'delete.enabled=false' and 'pk.mode=kafka' and therefore requires records with a non-null Struct value and non-null Struct schema, but found record at (topic='mytopic',partition=0,offset=20,timestamp=1722577031564) with a HashMap value and null value schema.
	at io.confluent.connect.jdbc.sink.RecordValidator.lambda$requiresValue$2(RecordValidator.java:86)
	at io.confluent.connect.jdbc.sink.BufferedRecords.add(BufferedRecords.java:81)
	at io.confluent.connect.jdbc.sink.JdbcDbWriter.write(JdbcDbWriter.java:74)
	at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:90)
	at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:581)

```

Any help appreciated.

---

<div class="post-metadata">

### Author: ![Baur](https://sea2.discourse-cdn.com/flex020/user_avatar/community.cratedb.com/baur/32/284_2.png) [@Baur](https://community.cratedb.com/u/Baur)
#### Post date: [August 6, 2024, 4:43am UTC](https://community.cratedb.com/t/exception-related-to-pk-mode-and-delete-enabled/1827/2 "2024-08-06T04:43:44Z")

</div>

Hi @gorde.akshay, looks like this is related to [Exception in JDBC sink connector - #6 by gorde.akshay](https://community.cratedb.com/t/exception-in-jdbc-sink-connector/1826/6)

Let’s continue conversation there.
