Sorry, this is similar to, but I can't comment on that: Translate nwd to svf - Internal Failure -1073741829
I have a large number of .IFC files exported from Tekla Structures that I'm trying to upload to Forge and process like instructed in "Prepare a File for the Viewer".
Roughly 20% of the IFC to SVF cloud conversions fail. These models can be viewed with other software like Navisworks Simulate 2017 though. Bigger file size seems to fail more probably, but I have failures for as small models as 18 MB (.IFC).
First POST job:
***** Response for Translating File to SVF: {
"result": "created",
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6c3RhdGlzdGljczQtcmFrLTRqbGV2NW8xa3p1OXlhd2ViY3FiYnBuamloZnhueDd1L1RTLU5FVy5kYjFfNTgyODMzRTAtMDAwMi5pZmM",
"registerKeys": [
"29751cb5-6661-4b34-97dc-93554d637d31"
],
"acceptedJobs": {
"output": {
"formats": [
{
"type": "svf",
"views": [
"3d"
]
}
]
}
}
}
After querying the GET :urn/manifest endpoint for some time the job has finished with failed status:
{
"type": "manifest",
"hasThumbnail": "false",
"status": "failed",
"progress": "complete",
"region": "US",
"urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6c3RhdGlzdGljczQtcmFrLTRqbGV2NW8xa3p1OXlhd2ViY3FiYnBuamloZnhueDd1L1RTLU5FVy5kYjFfNTgyODMzRTAtMDAwMi5pZmM",
"version": "1.0",
"derivatives": {
"0": {
"name": "LMV Bubble",
"hasThumbnail": "false",
"status": "failed",
"progress": "complete",
"messages": {
"0": {
"type": "error",
"message": "Unrecoverable exit code from extractor: -1073741829",
"code": "TranslationWorker-InternalFailure"
}
},
"outputType": "svf"
}
}
}
Q: What is the best approach to figuring out why it fails? Is it to provide all possible HTTP header garbage from POST and GET requests here, or contact someone directly with a sample file? Or other?
EDIT: Why I ended up writing this question was probably due to a programming error. Here's why I believe so and to help others:
- You do have to delete the old conversion manifest before a new upload and post conversion job can be started.
- My chunk upload code was based on this example: https://forge.autodesk.com/blog/c-resumable-upload-file-forge-sdk
- Only after I made this change in the upload code:
- using (FileStream streamReader = new FileStream(path, FileMode.Open))
+ using (BinaryReader reader = new BinaryReader(new FileStream(path, FileMode.Open)))
...
+ reader.BaseStream.Seek((int)start, SeekOrigin.Begin);
- int nb = streamReader.Read(buffer, 0, (int)length);
+ int nb = reader.Read(buffer, 0, (int)length);
I was able to do a successful conversion. IFC is not a binary format so can't figure out what's wrong, seek to zero maybe, it escapes me.