So I had a bed adhesion failure many hours into a print and had to cancel. The serial log is clean and pretty until the cancel, where I start getting 'invalid' messages. I've omitted it aside from a few lines on either side:
2018-10-31 20:16:09,571 - Send: N325924 G1 E-50.0000 F2000*20
2018-10-31 20:16:09,778 - Recv: ok
2018-10-31 20:16:09,819 - Send: N325925 G1 Y117.244 F2400*32
2018-10-31 20:16:10,016 - Recv: ok
2018-10-31 20:16:10,020 - Send: N325926 G4 S0*87
2018-10-31 20:16:12,215 - Recv: echo:busy: processing
2018-10-31 20:16:14,309 - Recv: echo:busy: processing
2018-10-31 20:16:16,427 - Recv: echo:busy: processing
2018-10-31 20:16:17,262 - Changing monitoring state from "Printing" to "Cancelling"
2018-10-31 20:16:17,330 - Send: N325927 G91*41
2018-10-31 20:16:18,545 - Recv: echo:busy: processing
2018-10-31 20:16:20,642 - Recv: echo:busy: processing
2018-10-31 20:16:22,918 - Recv: echo:busy: processing
2018-10-31 20:16:24,955 - Recv: echo:busy: processing
2018-10-31 20:16:27,069 - Recv: echo:busy: processing
2018-10-31 20:16:28,482 - Recv: ok
2018-10-31 20:16:28,495 - Recv: ok
2018-10-31 20:16:28,499 - Send: N325928 G1 Z-10*73
2018-10-31 20:16:28,507 - Send: N325929 G92*36
2018-10-31 20:16:28,510 - Recv: ok
2018-10-31 20:16:28,524 - Send: N325930 G1 E2 F5000*34
2018-10-31 20:16:29,350 - Recv: ok
2018-10-31 20:16:29,355 - Recv: ok
2018-10-31 20:16:29,357 - Send: N325931 G1 E2 F5500*38
2018-10-31 20:16:29,362 - Send: N325932 G1 E2 F6000*35
2018-10-31 20:16:29,371 - Recv: ok
2018-10-31 20:16:29,375 - Send: N325933 G1 E-15.0000 F5800*28
2018-10-31 20:16:29,376 - Recv: ok
2018-10-31 20:16:29,383 - Send: N325934 G1 E-50.0000 F5500*23
2018-10-31 20:16:29,388 - Recv: ok
2018-10-31 20:16:29,391 - Send: N325935 M702 C*126
2018-10-31 20:16:29,396 - Recv: ok
2018-10-31 20:16:29,402 - Send: N325936 G4*21
2018-10-31 20:16:31,538 - Recv: echo:busy: processing
2018-10-31 20:16:33,635 - Recv: echo:busy: processing
2018-10-31 20:16:35,741 - Recv: echo:busy: processing
2018-10-31 20:16:37,788 - Recv: echo:busy: processing
2018-10-31 20:16:39,902 - Recv: echo:busy: processing
2018-10-31 20:16:42,018 - Recv: echo:busy: processing
2018-10-31 20:16:44,129 - Recv: echo:busy: processing
2018-10-31 20:16:46,243 - Recv: echo:busy: processing
2018-10-31 20:16:48,291 - Recv: ok
2018-10-31 20:16:48,295 - Recv: ok
2018-10-31 20:16:48,296 - Send: N325937 M84*38
2018-10-31 20:16:48,307 - Send: N325938 M104 T0 S0*23
2018-10-31 20:16:48,314 - Recv: ok
2018-10-31 20:16:48,329 - Send: N325939 M104 T1 S0*23
2018-10-31 20:16:48,332 - Recv: ok
2018-10-31 20:16:48,346 - Send: N325940 M104 T2 S0*26
2018-10-31 20:16:48,349 - Recv: echo:M104 Invalid extruder 1
2018-10-31 20:16:48,361 - T3 reported as invalid, reverting to T0
2018-10-31 20:16:48,364 - Recv: ok
2018-10-31 20:16:48,375 - Recv: echo:M104 Invalid extruder 2
2018-10-31 20:16:48,375 - Send: N325941 T0*2
2018-10-31 20:16:48,377 - T3 reported as invalid, reverting to T0
2018-10-31 20:16:48,379 - Recv: ok
2018-10-31 20:16:48,401 - Send: N325942 T0*1
2018-10-31 20:16:50,409 - Recv: echo:busy: processing
2018-10-31 20:16:52,506 - Recv: echo:busy: processing
2018-10-31 20:16:54,575 - Recv: echo:busy: processing
2018-10-31 20:16:56,668 - Recv: echo:busy: processing
2018-10-31 20:16:58,744 - Recv: echo:busy: processing
2018-10-31 20:17:00,838 - Recv: echo:busy: processing
2018-10-31 20:17:02,915 - Recv: echo:busy: processing
2018-10-31 20:17:03,316 - Recv: ok
2018-10-31 20:17:03,320 - Send: N325943 M105*29
2018-10-31 20:17:05,364 - Recv: echo:busy: processing
2018-10-31 20:17:05,495 - Recv: ok
2018-10-31 20:17:05,500 - Send: N325944 M104 T3 S0*31
2018-10-31 20:17:05,502 - Recv: ok T:191.5 /0.0 B:60.3 /60.0 T0:191.5 /0.0 @:0 B@:0 P:33.6 A:39.2
2018-10-31 20:17:05,523 - Recv: echo:M104 Invalid extruder 3
2018-10-31 20:17:05,531 - T0 reported as invalid, reverting to T0
2018-10-31 20:17:05,536 - Recv: ok
2018-10-31 20:17:05,539 - Send: N325945 M104 T4 S0*25
2018-10-31 20:17:05,542 - Not queuing T0, that tool doesn't exist according to the printer profile or was reported as invalid by the firmware
2018-10-31 20:17:05,546 - Send: N325946 T0*5
2018-10-31 20:17:05,549 - Not sending T0, that tool doesn't exist according to the printer profile or was reported as invalid by the firmware
2018-10-31 20:17:05,550 - Recv: echo:M104 Invalid extruder 4
2018-10-31 20:17:05,552 - T0 reported as invalid, reverting to T0
2018-10-31 20:17:05,554 - Recv: ok
2018-10-31 20:17:05,557 - Not queuing T0, that tool doesn't exist according to the printer profile or was reported as invalid by the firmware
2018-10-31 20:17:05,561 - Send: N325947 T0*4
2018-10-31 20:17:05,563 - Not sending T0, that tool doesn't exist according to the printer profile or was reported as invalid by the firmware
2018-10-31 20:17:05,753 - Recv: ok
2018-10-31 20:17:05,758 - Send: N325948 M140 S0*84
2018-10-31 20:17:06,056 - Recv: ok
2018-10-31 20:17:06,060 - Recv: ok
2018-10-31 20:17:06,064 - Send: N325949 M106 S0*87
2018-10-31 20:17:06,067 - Changing monitoring state from "Cancelling" to "Operational"
2018-10-31 20:17:06,082 - Recv: ok
2018-10-31 20:17:07,283 - Send: M105
2018-10-31 20:17:07,293 - Recv: ok T:188.7 /0.0 B:60.3 /0.0 T0:188.7 /0.0 @:0 B@:0 P:33.6 A:39.0
That made me wonder if I'd put anything in my cancel gcode that would cause this. I don't think so; the G1 extruder commands should be fine, and note the M702 was sent okay.
G91
G1 Z-10
G92
G1 E2 F5000
G1 E2 F5500
G1 E2 F6000
G1 E-15.0000 F5800
G1 E-50.0000 F5500
M702 C
G4
; disable motors
M84
;disable all heaters
{% snippet 'disable_hotends' %}
{% snippet 'disable_bed' %}
;disable fan
M106 S0
and here's slic3r's ending gcode:
{if has_wipe_tower}
G1 E-15.0000 F3000
{else}
G1 X0 Y210 F7200
G1 E2 F5000
G1 E2 F5500
G1 E2 F6000
G1 E-15.0000 F5800
G1 E-20.0000 F5500
G1 E10.0000 F3000
G1 E-10.0000 F3100
G1 E10.0000 F3150
G1 E-10.0000 F3250
G1 E10.0000 F3300
{endif}
; Unload filament
M702 C
G4 ; wait
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
; Lift print head a bit
{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up
G1 X0 Y200; home X axis
M84 ; disable motors