Exception in thread "main" java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<db.Record>` from Object value (token `JsonToken.START_OBJECT`) at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1] at db.RecordRepository.getRecords(RecordRepository.java:52) at Application.main(Application.java:12) Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<db.Record>` from Object value (token `JsonToken.START_OBJECT`) at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1794) at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1568) at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1515) at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:404) at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:253) at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:29) at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4971) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3887) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3870) at db.RecordRepository.getRecords(RecordRepository.java:45) ... 1 more

 

Error 정리


“Cannot deserialize value of type ArrayList<Record> from Object value (START_OBJECT)” → 서버에서 배열 [...]이 아니라 객체 {...} 가 왔는데, 코드가 List<Record> 로 파싱하려다 실패한 겁니다.

대부분 아래 중 하나가 원인입니다.

Supabase REST 호출이 배열을 반환하도록 구성되지 않음

테이블 조회는 /{table}?select=* 형태여야 항상 [] 배열이 옵니다. ?select=* 빠지거나 경로/대소문자 틀리면 에러 객체 {message, hint, …} 가 옵니다.

헤더 누락/권한 오류(401/403) 로 에러 JSON 객체가 반환

apikey 와 Authorization: Bearer <SUPABASE_KEY> 둘 다 필요.

애초에 단건(RPC/싱글 오브젝트) 을 반환하는 엔드포인트를 불렀는데, 코드가 List<Record> 로 읽음.

 

Supabase -> MyProject -> API Docs -> TABLE NAME -> Bash -> Link Copy

API Key 문제인 줄 알았으나 Supabase REST API BASE URL Link 오타였음.

 

 

Parsing - 문법적 해부

Compile - 기계어 번역

 

* 참고 블로그 링크 : https://m.blog.naver.com/36513535/10021194977

+ Recent posts