One branch of my workflow defines 4 properties from object detection block, then runs a custom python block “csv_formatter” to concatenate them into a single string and then buffer “csv_buffer” that string for a length of 200 frames.
When another condition is met (a different part of the workflow that I know succeeds and when it does, there will be at least 80 empty rows in the “csv_buffer” and at least 1 non-empty row ie it will have at least 1 csv string of property definitions), the buffer output is passed to an expression block “csv_to_string” before sending the output to the local file sink block “file_sink_out”.
I have tested the logic and the “csv_to_string” block is processed, however what appears to be reaching the block is considered empty and there is nothing to file sink on.
My question is that considering there should at least be 1 row of non-empty data output from the “csv_buffer” block ie [“[‘reflector’],[0.9344291687011719],[381.0],[162.0]”] and there are also a lot of empty data rows like this: [‘,,,’], is the expression block seeing the empty data rows and assuming the whole input is empty, therefore does not get processed?
Below is some debug showing the output parameters defined for the file sink block, the csv_to_string expression block and the csv buffer block (there were a lot more rows in the buffer with data, I snipped it for brevity):
2025-05-28 12:12:57,205 - INFO - file_sink_message value: None
2025-05-28 12:12:57,206 - INFO - csv_to_string_debug value: None
2025-05-28 12:12:57,206 - INFO - csv_string_output value: None
2025-05-28 12:12:57,206 - INFO - csv_rows_debug value: ['[],[],[],[]']
2025-05-28 12:12:57,207 - INFO - csv_rows_debug first item type: <class 'str'>
2025-05-28 12:12:57,207 - INFO - csv_rows_debug first item value: [],[],[],[]
2025-05-28 12:12:57,208 - INFO - csv_buffer value: [['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ['[],[],[],[]'], ["['reflector'],[0.9573995471000671],[420.0],[105.0]"], ["['reflector'],[0.9622869491577148],[433.0],[118.0]"], ["['reflector'],[0.9586337804794312],[435.0],[123.0]"], ["['reflector'],[0.9615352749824524],[434.0],[120.0]"], ["['reflector'],[0.9595928192138672],[434.0],[121.0]"], ["['reflector'],[0.9597784280776978],[434.0],[122.0]"], ["['reflector'],[0.9577645659446716],[434.0],[123.0]"],<snip>
Or is this a data type mismatch issue?
I know the csv_buffer block has a warning but that appears to be a UI issue as the block does evaluate properly (I can query the contents and get results). The other workflow branches coming in from the left are just visualisations for me to see what’s happening.
- Project Type:
- Object Detection, local inference (in docker)
- Operating System & Browser:
- Windows 11/Chrome
- inference server 0.49.5
- Project Universe Link or Workspace/Project ID:
- Project ID: bytetracker_process_stall
- workspace_name=“sandbox-violr”,
- workflow_id=“track-object-workflow-5”