Model Auto-packaging Troubleshooting

How to detect model upload and auto-packaging issues

The following methods are used to detect issues detected during the model upload and auto-packaging process.

Get Model Upload Logs

During model upload and conversion, the Wallaroo SDK and the Wallaroo MLOps API detects common issues including improper file type, missing Python libraries, etc.

For more detailed information, model upload logs are provided to view the processes and outputs during the conversion process. The model upload logs typically take a few minutes after model upload to populate.

Typical outputs from the model upload logs include:

  • Static validation of model code (for Wallaroo Custom Models, Python Models, etc).
  • Parsing and installation of Python modules listed in the requirements.txt file for Wallaroo Custom Models.

The default retention period for model upload logs is 30 days.

Get Model Upload Logs via the Wallaroo SDK

Model upload logs are retrieved via the Wallaroo SDK using the Model.ModelVersion.get_upload_logs(limit=100). This returns a List[Strings], which a default of 100 elements in the returned list.

The following is an example of an output from a model that failed auto-packaging process.

input_schema = pa.schema([
    pa.field("text", pa.string())
])

output_schema = pa.schema([
    pa.field("text", pa.string()),
    pa.field("generated_text", pa.string())
])

model = wl.upload_model("llamacpp-inf-predict-no-dict-input", 
                    path="./models/byop-llamacpp-inf-predict-no-dict-input.zip", 
                    framework=Framework.CUSTOM, 
                    input_schema=input_schema,
                    output_schema=output_schema)
display(model)
Waiting for model loading - this will take up to 10min.
Model is pending loading to a container runtime.
Model is attempting loading to a container runtime........
Incompatible
ERROR!
There was an error during model conversion: Model failed to convert: The Inference class's predict method may only accept a dictionary of numpy arrays.
You can use model.get_upload_logs() to get more details.
Namellamacpp-inf-predict-no-dict-input
Version213523ac-a900-403f-bd18-0d0efd7e7466
File Namebyop-llamacpp-inf-predict-no-dict-input.zip
SHA77d42dca5d36b7926b0bb0561d0d46c972b060c16766659653db9cc9ee8f7527
Statuserror
Error SummaryThe Inference class's predict method may only accept a dictionary of numpy arrays.
Image PathNone
Architecturex86
Accelerationnone
Updated At2025-23-Dec 01:25:39
Workspace id85
Workspace namecv-retail-edge-observability-jcw
model.get_upload_logs()
<pre><code>2025-23-Dec 01:25:39 custom model validation failed
2025-23-Dec 01:25:39 INFO     pydata_util.file_loading.json_loader - INFO: Loading  json_loader.py:37
2025-23-Dec 01:25:39          JSON file from '/build/model.json'...                                  
2025-23-Dec 01:25:39 INFO     pydata_util.file_loading.json_loader - INFO: Loading  json_loader.py:42
2025-23-Dec 01:25:39          successful.                                                            
2025-23-Dec 01:25:39 DEBUG    mac.cli - DEBUG: Parsed NATS message:                        cli.py:106
2025-23-Dec 01:25:39          data=ModelPackagingUpdateEvent(model=ConfiguredModelVersion(           
2025-23-Dec 01:25:39          model_version=ModelVersion(name='llamacpp-inf-predict-no-dic           
2025-23-Dec 01:25:39          t-input',                                                              
2025-23-Dec 01:25:39          conversion=Conversion(accel=Acceleration(root=<SupportedAcce           
2025-23-Dec 01:25:39          lerations._None: 'none'>), framework='custom',                         
2025-23-Dec 01:25:39          framework_config=FrameworkConfig(framework='custom',                   
2025-23-Dec 01:25:39          config=CustomConfig(model_path=PosixPath('byop-llamacpp-inf-           
2025-23-Dec 01:25:39          predict-no-dict-input.zip/model'))), arch='x86',                       
2025-23-Dec 01:25:39          python_version='3.8', requirements=[]), workspace_id=85,               
2025-23-Dec 01:25:39          file_info=FileInfo(sha='77d42dca5d36b7926b0bb0561d0d46c972b0           
2025-23-Dec 01:25:39          60c16766659653db9cc9ee8f7527',                                         
2025-23-Dec 01:25:39          file_name=PosixPath('byop-llamacpp-inf-predict-no-dict-input           
2025-23-Dec 01:25:39          .zip'), size=1090687,                                                  
...                               
2025-23-Dec 01:25:39 
2025-23-Dec 01:25:39 BYOP validation FAILED!
2025-23-Dec 01:25:39 Error: The Inference class's predict method may only accept a dictionary of numpy arrays.</code></pre>