Model Auto-packaging Troubleshooting
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.txtfile 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.
| Name | llamacpp-inf-predict-no-dict-input |
| Version | 213523ac-a900-403f-bd18-0d0efd7e7466 |
| File Name | byop-llamacpp-inf-predict-no-dict-input.zip |
| SHA | 77d42dca5d36b7926b0bb0561d0d46c972b060c16766659653db9cc9ee8f7527 |
| Status | error |
| Error Summary | The Inference class's predict method may only accept a dictionary of numpy arrays. |
| Image Path | None |
| Architecture | x86 |
| Acceleration | none |
| Updated At | 2025-23-Dec 01:25:39 |
| Workspace id | 85 |
| Workspace name | cv-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>