Issues with last selector and type stream

I have an issue with a last selector in a type stream task, using Kapacitor version 1.3.1. It appears as though the first datapoint is discarded. My data in this example is basically just a field ac sent from a sensor gateway indicating whether it’s connected to the main or not. This is the task:

    .id('Alarm on Gateway {{index .Tags "mac" }} sensor {{index .Tags "node" }}')

using the following vars:

crit                          lambda    "last" == 0
field                         string    ac
measurement                   string    sensor_data
where_filter                  lambda    "node" == 'sys' AND "cmdclass" == 'alarm' AND "action" == 'stat'
window                        duration  10s

the relevant part of the DOT is:

from1 [avg_exec_time_ns="0s" errors="0" working_cardinality="0" ];
from1 -> window2 [processed="2"];
window2 [avg_exec_time_ns="0s" errors="0" working_cardinality="1" ];
window2 -> last3 [processed="1"];

From some trial and error I found that the first datapoint is the one that is not processed. When I replicate this using batch mode instead everything appears to work fine (snipped for brevity):

    |query('SELECT last(ac) FROM ' + dbrp + ' WHERE ' + where_filter)

query1 [avg_exec_time_ns="4.087748ms" batches_queried="2" errors="0" points_queried="2" 
working_cardinality="0" ];
query1 -> eval2 [processed="2"];

I would have thought the stream and the batch tasks would be equivalent. Might this be a bug or is there some issue with my script? I’m fairly new to kapacitor