Metadata not deleting - using Node SDK

Hello, unsure if anyone else is experiencing this but I’m unable to delete metadata from assistants through the assistants API (using node sdk).

ADDING new metadata and UPDATING metadata still works. However, if I send a map without a existing pair(s), the metadata will not not be updated with the removed pairs. Is this expected behavior? If so, how do we explicitly remove metadata?

CODE

    console.log('>>>>>>>> metadata object', agentParams.metadata)

    const updateParams = {
      name: agentParams.name,
      description: agentParams.description,
      instructions: agentParams.instructions,
      model: agentParams.model,
      metadata: agentParams.metadata,
    }
    const openai = await getOpenAI(c)
    const assistant = await openai.beta.assistants.update(agentParams.id, updateParams)
    console.log('UPDATE PARAMS', updateParams)

LOGS

>>>>>>>> metadata object Object {                                                                                                                                                                  
                                                                                                                                                                                                   
}                                                                                                                                                                                                  
UPDATE PARAMS Object {                                                                                                                                                                             
  name: English Tutor,                                                                                                                                                                             
  description: Take care of English stuffs,                                                                                                                                                        
  instructions: You are a personal english tutor. Write and run code to answer english questions.,
  model: gpt-4-1106-preview,
  metadata: Object
}

What I receive from the backend:

{
  created_at: 1699777427,
  description: "Take care of English stuffs",
  file_ids: [],
  id: "asst_zZ0Td78363rsvRq2Pe7usNB5",
  instructions: "You are a personal english tutor. Write and run code to answer english questions.",
  metadata: {
    test: "123123"
  },
  model: "gpt-4-1106-preview",
  name: "English Tutor",
  object: "assistant",
  tools: []
}

As you can see, despite sending an empty object (also tried with map), the API still sends me metadata back.

Steps to reproduce:

  1. Create an assistant with non-empty metadata.
  2. Update the assistant with an empty metadata object (to supposedly update to an empty metadata object)
  3. You will receive non-empty metadata

I’m seeing this too, but using the Python library. It must be an API level issue where it can’t be left empty? I’m going to try removing just a single key, maybe it just needs to have at least 1 left after 1 has been added in the past?

Just following up, I can’t seem to remove any keys from the metadata for assistants. This seems like a bug.

What happens if you try

{
  test: undefined
}

In python, with “None” I get this:

DEBUG:openai._base_client:HTTP Request: POST https://api.openai.com/v1/assistants/asst_QS21xKFDnKObuFkIffMvyquk "400 Bad Request"
ERROR:src.app:OpenAI APIError: Error code: 400 - {'error': {'message': '2 validation errors for Request\nbody -> metadata\n  instance of Missing expected (type=type_error.arbitrary_type; expected_arbitrary_type=Missing)\nbody -> metadata -> thread_FfzTmKEqFNkUbQPa2QCUNnvz\n  none is not an allowed value (type=type_error.none.not_allowed)', 'type': 'invalid_request_error', 'param': None, 'code': None}}
1 Like

Thanks for trying. Yeah, looks like a bug :beetle:. Can’t delete properties

Drats! The API was this close to not requiring a database. The dream is shattered, oh well!