Skip to main content

Troubleshooting

Quick Diagnosis​

# Check container status
docker ps | grep content-splitting

# Check recent logs
docker logs content-splitting --tail 50 2>&1 | grep -i error

# Test with sample array
curl -X POST http://localhost:8080/sensors/bulk \
-H "Content-Type: application/json" \
-d '{"device_id": "test", "readings": [{"value": 1}, {"value": 2}]}'

Common Issues​

Array not being split​

Cause: Wrong field name in unarchive config or array field missing

# Check logs for incoming data structure
docker logs content-splitting --tail 20 2>&1 | grep readings

Fix: Verify the array field name matches your config:

Partial snippet: select and split the readings array
- mapping: root = this.readings
- unarchive:
format: json_array

Parent context lost after split​

Cause: Metadata not stored before split

Fix: Store context in meta() before unarchive, restore after:

- mapping: |
meta device_id = this.device_id
root = this.readings
- unarchive:
format: json_array
- mapping: |
root = this
root.device_id = meta("device_id")

Memory errors on large arrays​

Cause: Array too large for available memory

# Check container memory
docker stats content-splitting --no-stream

Fix: Add size validation before splitting:

- mapping: |
if this.readings.length() > 10000 {
throw("Array too large")
}

Split messages going to wrong destination​

Cause: Routing condition not matching split message structure

Fix: Check that routing conditions work on the split message format (individual items, not the parent array)

Still stuck?​

  1. Add debug logging: logger: {level: DEBUG}
  2. Check the Complete Pipeline for reference config
  3. Review Fan-Out Pattern for multi-destination routing