Skip to content

SnipeIT asset creation fails with 'model_id field is required' despite providing model_id #18

Description

@azainal-gemini

Issue Description

When creating assets in Snipe-IT using the Go library, the API returns an error stating "The model id field is required" despite model_id being properly included in the request payload.

Reproduction Steps

  1. Initialize a Snipe-IT client
  2. Create an asset with model_id, status_id and manufacturer_id fields set
  3. Call CreateAsset method
  4. API returns 200 OK but with error status in the body

Expected Behavior

Asset should be created successfully when model_id is provided

Actual Behavior

API returns JSON with error status: {"status":"error","messages":{"model_id":["The model id field is required."]},"payload":null}

Technical Details

  • Using rego library version: [v0.0.0-20250529045826-8981c238fe8d]
  • The issue appears to be with JSON serialization - model_id is nested under Method instead of being at the root level:
// Current payload structure (problematic):
{
  "name":"test-asset", 
  "asset_tag":"TAG123",
  "serial":"SN123",
  "Method":{
    "manufacturer_id":1,
    "model_id":2,
    "status_id":2
  }
}

// Expected payload structure:
{
  "name":"test-asset",
  "asset_tag":"TAG123",
  "serial":"SN123",
  "manufacturer_id":1,
  "model_id":2,
  "status_id":2
}

Logs

[2025/07/03 01:19:15 PM] {asset_test} {test_asset_creation.go:168} INFO - Asset payload: {"name":"example-mac-xxxx","asset_tag":"TAG-1751519955","serial":"XXXXXXXXXXXX","Method":{"manufacturer_id":1,"model_id":2,"status_id":2}}
[2025/07/03 01:19:15 PM] {asset_test} {test_asset_creation.go:171} INFO - Attempting to create asset...
[2025/07/03 01:19:15 PM] {snipeit} {snipeit.go:64} DEBUG - url: https://example.snipe-it.domain/api/v1/hardware
[2025/07/03 01:19:16 PM] {snipeit} {snipeit.go:167} INFO - Response Status: 200 OK
[2025/07/03 01:19:16 PM] {snipeit} {snipeit.go:168} DEBUG - Response Body: {"status":"error","messages":{"model_id":["The model id field is required."]},"payload":null}
[2025/07/03 01:19:16 PM] {asset_test} {test_asset_creation.go:178} FATAL - Created asset is nil but no error was returned

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions