Processing Failed Jobs and Models
Understanding and Responding to Job and Model Failures
When a Hover job or an individual model within a job can't be successfully processed by our reconstruction pipeline, its state updates to failed
. Hover then dispatches webhook notifications to let your integration know about these status changes.
It's important to note that a job's state is independent of its models' states. A job might even reach a completed
state if one or more of its constituent models have failed
to reconstruct. So, monitoring for specific failures at both the job and model level is crucial.
Getting the specific failure_reason
after a job or model has failed is essential for giving meaningful feedback to your users or kicking off automated fixes within your system. This lets you go beyond a simple "failed" status and offer actionable insights.
Recommended Approach to Retrieve Failure Reasons
To make sure you capture all relevant processing failures and their specific reasons, we recommend monitoring for both job-state-changed-v2 and model-state-changed webhook events.
Steps to Retrieve Failure Reasons
- Receive Webhook Notification:
Your integration should be set up to receive:job-state-changed-v2
webhooks: Monitor these for instances where the state of the overall job transitions to "failed".model-state-changed
webhooks: Specifically monitor these for individual models where their state transitions to "failed".- The webhook payload for both event types will include the job_id (and model_id for model-state-changed events) of the affected entity.
- Query the Show Job Details Endpoint:
Regardless of whether a job or a model failed, use thejob_id
and/ormodel_id
from the received webhook payload to make aGET
request to the Show Job Details endpoint. This endpoint gives you comprehensive information about the job, including details for all associated models and their respective states and failure reasons. - Interpret the failure_reason:
The response from the Show Job Details endpoint will contain the full job object.- For Job-Level Failures: If the job_state is "failed", the top-level
failure_reason
field within the job object will contain the reason for the overall job's failure. - For Model-Level Failures: If a specific model's state within the job object (found inside the models array) is "failed", that individual model object will have its own
failure_reason
field, explaining why that particular model couldn't be reconstructed. - Actionable Insight: Use the relevant
failure_reason
(either job-level or model-level) to inform your customers directly, prompt them to take specific remediating actions or log the issue for internal review. Giving granular reasons helps users understand exactly what went wrong and how to fix it.
- For Job-Level Failures: If the job_state is "failed", the top-level
Possible Failure Reasons
Below is a comprehesive list of the possible failure reasons that you might see on either the job or model level:
Error Name | Error ID |
---|---|
No good corner shot | 3 |
Heavily obstructed | 4 |
Low Resolution | 6 |
Not weathertight | 7 |
Lack of exterior shots | 8 |
Blurry images | 9 |
Too few images | 11 |
Night time | 12 |
Photo of Photos | 17 |
Blueprint: Missing measurements | 19 |
Blueprint: Missing elevation shots | 20 |
Blueprint: Missing floor plan | 21 |
Blueprint: Missing roof plan | 22 |
Blueprint: building(s) not specified | 23 |
Interior: Upload Issue | 24 |
Interior: Missing Transition Shots | 25 |
Interior: Not enough usable photos | 27 |
Customer requested cancellation | 29 |
Interior: Reference Measurement Required | 30 |
Interior: Insufficient Lighting | 31 |
Interior: Obstructions | 32 |
Blueprint: Files not processable | 33 |
Blueprint: Building type not supported | 34 |
Blueprint: Missing wall or ceiling height(s) | 35 |
Blueprint: Missing window and door measurements | 36 |
Blueprint: Floor plan level not specified | 37 |
Instant Floor Plan: Unable to process | 38 |
Blueprint: Elevations, Floor Plan and Roof Plan don't align | 39 |
Updated about 1 month ago