Two identical OctoPrint Failures

I've been using OctoPrint for a while now and really like it, and this is the first time I've seen an issue like this.

I've been making some 'modular drawers' found on Thingiverse, and the first two printed perfectly, if a bit long. However, the problem is the second two I've tried to print failed in exactly the same way. The only difference between the failed prints and the good prints is I adjusted the object for a 10% infill for the failed parts and the successful ones were 25% infill (The parts don't need 25% infill, so no reason to use the time or plastic to go that high). The short story is the failure both times was 'Communication timeout while printing', and comparing the second failure to the first, it failed in EXACTLY the same place. All were sliced with Cura, I know the failed ones were sliced with 4.0, and I think the good ones were as well, but the good ones MAY have been sliced with Cura 3.6 (I upgraded to 4.0 recently and I'm not exactly sure of the timing relative to the sliced files). My printer is running Marlin 1.1.8 (I had weird homing issues with 1.1.9 so I went back to 1.1.8). I've never seen this kind of failure before.

Here is the output from the terminal (In the interests of brevity, I've removed a lot of redundant text; everything removed was '\x00' over and over again):

Send: N665610 G1 X42.14 Y153.139 E3056.97414*96
Recv: ok
Send: N665611 G1 X41.538 Y152.966 E3056.99701*83
Recv: ok
Send: N665612 G1 X40.936 Y152.474 E3057.02541*88
Recv: ok
Send: N665613 G1 X40.427 Y151.849 E3057.05485*91
Recv: ok
Send: N665614 G0 F12000 X39.828 Y151.2*116
Recv: ok
Send: N665615 G1 F3300 X39.732 Y151.099 E3057.05994*58
Recv: ok
Send: N665616 G1 X39.13 Y150.678 E3057.08677*108
Recv: ok
Send: N665617 G1 X38.528 Y150.42 E3057.11069*111
Recv: ok
Send: N665618 G1 X37.926 Y150.282 E3057.13325*90
Recv: ok
Send: N665619 G1 X37.433 Y150.271 E3057.15126*89
Recv: ok
Send: N665620 G0 F12000 X40.255 Y151.372*121
Recv: ok
Send: N665621 G0 X40.427 Y155.333*47
Recv: ok
Send: N665622 G1 F3300 X40.936 Y155.749 E3057.17527*51
Recv: ok
Send: N665623 G1 X41.538 Y156.488 E3057.21008*87
Recv: ok
Send: N665624 G1 X42.14 Y157.124 E3057.24206*99
Recv: ok
Send: N665625 G1 X42.742 Y157.545 E3057.26889*90
Recv: ok
Send: N665626 G1 X43.344 Y157.803 E3057.29281*88
Recv: ok
Send: N665627 G1 X43.827 Y157.914 E3057.31091*90
Recv: ok
Send: N665628 G0 F12000 X43.827 Y162.412*124
Recv: ok
Send: N665629 G1 F3300 X43.344 Y162.619 E3057.33011*50
Recv: ok
Send: N665630 G1 X42.742 Y162.757 E3057.35266*80
Recv: ok
Send: N665631 G1 X42.14 Y162.771 E3057.37466*101
Recv: ok
Send: N665632 G1 X41.538 Y162.598 E3057.39753*80
Recv: ok
Send: N665633 G1 X40.936 Y162.106 E3057.42593*83
Recv: ok
Send: N665634 G1 X40.427 Y161.481 E3057.45537*89
Recv: ok
Send: N665635 G0 F12000 X40.427 Y164.965*116
Recv: ok
Send: N665636 G1 F3300 X40.936 Y165.381 E3057.47938*50
Recv: ok
Send: N665637 G1 X41.538 Y166.12 E3057.51419*101
Recv: ok
Send: N665638 G1 X42.14 Y166.756 E3057.54617*108
Recv: ok
Send: N665639 G1 X42.742 Y167.177 E3057.573*93
Recv: ok
Send: N665640 G1 X43.344 Y167.435 E3057.59693*82
Recv: ok
Send: N665641 G1 X43.827 Y167.546 E3057.61503*89
Recv: ok
Send: N665642 G0 F12000 X43.827 Y172.044*118
Recv: ok
Send: N665643 G1 F3300 X43.344 Y172.251 E3057.63422*54
Recv: ok
Send: N665644 G1 X42.742 Y172.389 E3057.65678*91
Recv: ok
Send: N665645 G1 X42.14 Y172.403 E3057.67877*104
Recv: ok
Send: N665646 G1 X41.538 Y172.23 E3057.70164*104
Recv: ok
Send: N665647 G1 X40.936 Y171.738 E3057.73004*80
Recv: ok
Send: N665648 G1 X40.427 Y171.113 E3057.75948*90
Recv: ok
Send: N665649 G0 F12000 X40.255 Y170.372*117
Recv: ok
Send: N665650 G0 X39.499 Y170.2*36
Recv: ok
Send: N665651 G1 F3300 X39.13 Y169.942 E3057.77592*5
Recv: ok
Send: N665652 G1 X38.528 Y169.684 E3057.79985*93
Recv: ok
Send: N665653 G1 X37.926 Y169.546 E3057.8224*106
Recv: ok
Send: N665654 G1 X37.433 Y169.535 E3057.84041*85
Recv: ok
Send: N665655 G0 F12000 X40.255 Y170.372*120
Recv: ok
Send: N665656 G0 X40.427 Y174.597*36
Recv: ok
Send: N665657 G1 F3300 X40.936 Y175.013 E3057.86442*49
Recv: ok
Send: N665658 G1 X41.538 Y175.752 E3057.89923*92
Recv: ok
Send: N665659 G1 X42.14 Y176.388 E3057.93122*103
Recv: ok
Send: N665660 G1 X42.742 Y176.809 E3057.95805*81
Recv: ok
Send: N665661 G1 X43.344 Y177.067 E3057.98197*93
Recv: ok
Send: N665662 G1 X43.827 Y177.178 E3058.00007*89
Recv: ok
Send: N665663 G0 F12000 X43.827 Y181.676*126
Recv: ok
Send: N665664 G1 F3300 X43.344 Y181.883 E3058.01926*56
Recv: ok
Send: N665665 G1 X42.742 Y182.021 E3058.04182*92
Recv: ok
Send: N665666 G1 X42.14 Y182.035 E3058.06381*109
Recv: ok
Send: N665667 G1 X41.538 Y181.862 E3058.08669*80
Recv: ok
Send: N665668 G1 X40.936 Y181.37 E3058.11509*105
Recv: ok
Send: N665669 G1 X40.427 Y180.745 E3058.14452*92
Recv: ok
Send: N665670 G0 F12000 X40.427 Y184.229*120
Recv: ok
Send: N665671 G1 F3300 X40.936 Y184.645 E3058.16853*52
Recv: ok
Send: N665672 G1 X41.393 Y185.206 E3058.19496*93
Recv: ok
Send: N665673 G0 F12000 X42.363 Y186.176*117
Recv: ok
Send: N665674 G1 F3300 X42.742 Y186.441 E3058.21185*60
Recv: ok
Send: N665675 G1 X43.344 Y186.699 E3058.23577*84
Recv: ok
Send: N665676 G1 X43.946 Y186.837 E3058.25833*94
Recv: ok
Send: N665677 G1 X44.548 Y186.851 E3058.28032*94
Recv: ok
Send: N665678 G1 X45.15 Y186.678 E3058.3032*81
Recv: ok
Send: N665679 G1 X45.752 Y186.186 E3058.3316*103
Recv: ok
Send: N665680 G1 X46.354 Y185.447 E3058.36641*90
Recv: ok
Send: N665681 G1 X46.396 Y185.402 E3058.36866*95
Recv: ok
Send: N665682 G0 F12000 X45.705 Y189.518*123
Recv: ok
Send: N665683 G1 F3300 X45.752 Y189.461 E3058.37135*51
Recv: ok
Send: N665684 G1 X46.354 Y188.969 E3058.39975*85
Recv: ok
Send: N665685 G1 X46.956 Y188.796 E3058.42263*82
Recv: ok
Send: N665686 G1 X47.558 Y188.81 E3058.44462*98
Recv: ok
Send: N665687 G1 X48.16 Y188.948 E3058.46718*99
Recv: ok
Send: N665688 G1 X48.762 Y189.206 E3058.4911*105
Recv: ok
Send: N665689 G1 X49.364 Y189.627 E3058.51793*88
Recv: ok
Send: N665690 G1 X49.966 Y190.263 E3058.54991*93
Recv: ok
Send: N665691 G1 X50.568 Y191.002 E3058.58472*94
Recv: ok
Send: N665692 G1 X51.17 Y191.494 E3058.61312*97
Recv: ok
Send: N665693 G1 X51.772 Y191.667 E3058.636*94
Recv: ok
Send: N665694 G1 X52.374 Y191.653 E3058.65799*88
Recv: ok
Send: N665695 G1 X52.976 Y191.515 E3058.68055*90
Recv: ok
Send: N665696 G1 X53.578 Y191.257 E3058.70447*85
Recv: ok
Send: N665697 G1 X54.18 Y190.836 E3058.7313*90
Recv: ok
Send: N665698 G1 X54.782 Y190.2 E3058.76328*80
Recv: ok
Send: N665699 G1 X55.384 Y189.461 E3058.79809*92
Recv: ok
Send: N665700 G1 X55.986 Y188.969 E3058.82649*95
Recv: ok
Send: N665701 G1 X56.588 Y188.796 E3058.84937*81
Recv: ok
Send: N665702 G1 X57.19 Y188.81 E3058.87136*85
Recv: ok
Send: N665703 G1 X57.56 Y188.895 E3058.88523*109
Recv: ok
Send: N665704 G0 F12000 X58.776 Y188.465*118
Recv: ok
Send: N665705 G0 X67.62 Y188.484*19
Recv: ok
Send: N665706 G0 X68.112 Y188.343*37
Recv: ok
Send: N665707 G0 X68.722 Y189.727*38
Recv: ok
Send: N665708 G1 F3300\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00

SNIP

x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x009 Y188.514 E3852.86769*106
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Changing monitoring state from "Printing" to "Pausing"
Communication timeout while printing, trying to trigger response from printer. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
No response from printer after 6 consecutive communication timeouts, considering it dead. Configure long running commands or increase communication timeout if that happens regularly on specific commands or long moves.
Changing monitoring state from "Pausing" to "Offline (Error: Too many consecutive timeouts, printer still connected and alive?)"
Connection closed, closing down monitor
Closing down send loop

Anyone have any ideas or suggestions?

You noticed that, right? That doesn't look like valid gcode to me. I'm guessing that the hexadecimal zeroes are just dead padding that's at the end of the file. Somewhere the gcode file became corrupted.

So go back to the original gcode file (not the one on your OctoPrint instance/Raspberry) and open it up with a text editor on your workstation. Go to the end of the file and see what's there. Search for G0 X68.722 Y189.727*38 if you want to jump there faster.

You're trying to see if one of your Cura instances corrupted the file or if it was corrupted by the upload to OctoPrint or by one of your plugins (or even by a post-processing script in Cura). Something trashed your file. So use a process of elimination and see what caused this.

Yes, I noticed that, but wasn't really sure what to make of it. But after your suggestion, I searched for the string you suggested, and it doesn't exist.

I then downloaded the file from OctoPrint, and the size matches the original EXACTLY, to the bit. However, when I compared them with WinMerge, it turns out that despite the sizes being identical, at line 664,000, it ends with 'G1 F3300' and a bunch of zeros in the OctoPrint file, where that line should be (and is) 'G1 F3300 X69.23 Y190.263 E3058.9122' in the original, and there is a roughly 16.5k line gap in the code that's missing in the OctoPrint version, where it then picks up at line 680,493 with 'G0 F12000 X95.701 Y188.474' and the two files match from there.

This is near the bottom of both files, at the same line:

;TIME_ELAPSED:26396.719269
G1 F1500 E772.59867
M140 S0
M107
M104 S0
M140 S0
;Retract the filament
G92 E1
G1 E-1 F300
G28 X0 Y0
M84
M82 ;absolute extrusion mode
M104 S0
;End of Gcode

Below that, there are a bunch of lines with ';SETTING_3' and various settings; aside from the gap, both files match exactly. This gap is obviously where the problem is coming from.

Thanks for the input - that's weird. In all the prints I've done, I've NEVER seen anything like this, and the other problem is with something like this, I would expect an error something like 'gcode error', 'corrupt gcode' or some other message to suggest that the problem was with the file being printed, but the error brought up suggested a printer problem, which it obviously wasn't.

I deleted the file from the OctoPi, re-uploaded it and re-downloaded it, and as of now, the file I re-downloaded is an exact match for the original.

0-bytes in the GCODE? That sounds similar to

though that was only one single 0-byte where a space should be and at least in one case not even present on the file stored on OctoPrint's file system.

Might be worth to do a bunch of uploads as done by the OP in the linked issue and check if the problem can be reproduced.

That would have to come from the firmware, and the firmware simply stopped responding altogether which is why instead of getting a helpful error you ran into a timeout.

Actually, while there is a similarity in the \x00 in the log, it seems a bit different in that the linked issue results in a single space in a line becoming \x00, whereas what I have is a ton of lines of nothing, part of which shows up as two zeros in a box in WinMerge, with thousands of lines of code 'just missing' (wordpad doesn't show any characters, just white space). Both the corrupt file and the good one are the same number of lines, the corrupt one just has a huge gap in it, and after the gap, the remaining lines match up in both files perfectly. Perhaps the same issue caused it, but the outcome was quite different.

That's why I wrote

:wink:

It would probably be good to know...

  • workstation operating system
  • browser with version
  • Cura version you worked with
  • sounds like Marlin 1.1.8

It's possible that the infill change doesn't matter.

Honestly, this sounds like the underlying problem. If you were careful with which-file-is-which then it also sounds like the zeroes were added as you got the file over to the microSD image. We have to assume that you uploaded the file unless you used some other means. If you used Samba or anything else then please make this known. For example, are you using the Cura plugin to push the file sideways to your OctoPrint instance?

The file was uploaded using Firefox to OctoPrint - The original file as sliced by Cura was intact and correct - I have a suspicion that this may have been some sort of fluke as it does not seem to be reproducible, and it's the first time I've seen anything like it in the roughly year and a half I've been using OctoPrint. It's possible that I had uploaded the file while it was printing and that caused some data to be 'forgotten' during the write. After deleting the uploaded file from OctoPrint and re-uploading the original, the re-uploaded file was correct and I've already gotten one full print off of it.

1 Like

@foosel If this is related to this / this (Raspi sometimes goes totally unresponsive during o/s-related activities for large files) then it could potentially be the cause.