Skip to content

Logs Not Recording 422 Error #1314

@dan-fernandes

Description

@dan-fernandes

When testing the VISR GUI on b01-1, services commit 99cfa4, the controls core team submitted a task with the following json:

{"name":"demo_spectroscopy","params":{"total_number_of_scan_points":25,"grid_size":5,"grid_origin_x":0,"grid_origin_y":0,"exposure_time":0.1},"instrument_session":"cm40661-6"}

This resulted in a 422 error:

{
  "detail": [
    {
      "loc": [
        "body",
        "params",
        "spectroscopy_detector"
      ],
      "msg": "Value error, Device spectroscopy_detector is not of type ophyd_async.epics.adaravis._aravis.AravisDetector",
      "type": "value_error",
      "input": "spectroscopy_detector"
    },
    {
      "loc": [
        "body",
        "params",
        "sample_stage"
      ],
      "msg": "Value error, Device sample_stage is not of type dodal.devices.motors.XYZStage",
      "type": "value_error",
      "input": "sample_stage"
    },
    {
      "loc": [
        "body",
        "params",
        "pmac"
      ],
      "msg": "Input should be an instance of PmacIO",
      "type": "is_instance_of",
      "input": "pmac"
    },
    {
      "loc": [
        "body",
        "params",
        "pandabox"
      ],
      "msg": "Value error, Device pandabox is not of type ophyd_async.fastcs.panda._hdf_panda.HDFPanda",
      "type": "value_error",
      "input": "pandabox"
    }
  ]
}

However the pod service's logs did not reflect this:

2025-12-18 10:31:51,327 INFO method: POST url: http://b01-1-blueapi.diamond.ac.uk/tasks body: b'{"name":"demo_spectroscopy","params":{"total_number_of_scan_points":25,"grid_size":5,"grid_origin_x":0,"grid_origin_y":0,"exposure_time":0.1},"instrument_session":"cm40661-6"}'
2025-12-18 10:31:52,862 DEBUG method: GET url: http://10.46.0.7:8000/healthz body: b''
2025-12-18 10:31:52,912 DEBUG method: GET url: http://10.46.0.7:8000/healthz body: b''
2025-12-18 10:32:02,861 DEBUG method: GET url: http://10.46.0.7:8000/healthz body: b''
2025-12-18 10:32:02,912 DEBUG method: GET url: http://10.46.0.7:8000/healthz body: b''

Because the GUI does not display request response statuses, this was needlessly difficult to debug. However, in general, errors are not correctly logged.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Open P46 (or equiv.) logs via ArgoCD or Kubernetes
  2. Submit a task to p46 /tasks endpoint with request body {}
  3. Receive 422 error from submission
  4. See that logs do not reflect the error

Acceptance Criteria

  • Logs reflect erroring requests

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions