Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

VectorSearchFilter.filter serializes as null causing HTTP 400 from AI Core API

Aberta
#857 5 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
52/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
java
Domínio
api

Direção de pesquisa

Comece com VectorSearchFilter e inspecione como seu campo filter é serializado; em seguida, compare o ObjectMapper padrão de ApiClient com a solução alternativa personalizada NON_NULL descrita na issue. Reproduza a requisição de VectorApi.search() e confirme que um filter não definido é omitido e que a AI Core API não retorna mais HTTP 400.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
Describe the Problem/Bug

When using VectorApi.search(), the VectorSearchFilter class has a filter field annotated with @JsonProperty("filter") but without @JsonInclude(JsonInclude.Include.NON_NULL). When filter is not set (the
common case), it serializes as "filter": null in the JSON request body.

The AI Core API rejects this with HTTP 400:
{"error": {"code": "400", "message": "None is not valid under any of the given schemas - 'filters.0.filter'"}}

Steps to Reproduce
  var filter = VectorSearchFilter.create()
      .id(UUID.randomUUID().toString())
      .collectionIds(List.of("*"))
      ._configuration(VectorSearchConfiguration.create().maxDocumentCount(5));

  var request = TextSearchRequest.create()
      .query("some query")
      .filters(filter);

  vectorApi.search(resourceGroupId, request); // → HTTP 400

Actual request body sent:

  {
    "query": "some query",
    "filters": [{
      "id": "...",
      "collectionIds": ["*"],
      "configuration": {"maxDocumentCount": 5},
      "collectionMetadata": [],
      "documentMetadata": [],
      "chunkMetadata": [],
      "filter": null
    }]
  }
Expected Behavior

filter should be omitted from the serialized JSON when not set, either via @JsonInclude(JsonInclude.Include.NON_NULL) on the field, or by configuring the SDK's default ObjectMapper with
NON_NULL inclusion.

Workaround: Construct the VectorApi with a custom ApiClient using an ObjectMapper configured with JsonInclude.Include.NON_NULL.

Screenshots

No response

Used Versions

SDK version: 1.19.0
Spring AI version: 1.1.5

Code Examples
// Your code here
Stack Trace

No response

Log File
Log file ...
Affected Development Phase

Getting Started

Impact

No Impact

Timeline

No response

Linguagem predominante
Java
Estrelas
43
Forks
25
Merge médio
20h 45min
PRs com merge (30d)
56

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de SAP/ai-sdk-java

Todas as issues de SAP/ai-sdk-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.