TimelineSequenceSource.StartGetSequences() stops querying a one-hour period shortly after the end of that period

Our plugin collects events from a poller once every 10 minutes, and we display the events in the SC Timeline with a TimelineSequenceSource subclass. Events are populating the timeline as expected, but we’re hitting a case where there are gaps in the timeline ending exactly at the hour.

By placing some trace debugging in StartGetSequences(), we’re seeing that the one-hour period that has just ended (for e.g. 18:00 - 19:00) stops being queried shortly after the local time hits 19:00.

This means that a event batch that arrives at 19:05 (covering the time period from 18:55 to 19:05) only shows as starting at exactly 19:00, leaving a gap from 18:55 to 18:59:59.

I have created a minimally reproducible code sample based on the mip-sdk-samples Timeline sample project at https://github.com/bentorkington/mipsdk-samples-plugin/tree/timeline-bug-demo

To reproduce this issue:

Build, install, and drag the View Item plugin into an empty view, as usual

Scroll the timeline to the current local time

Note that the timeline is populated with a blue ribbon, which runs up until 10 minutes before the current local time, and that the ribbon keeps updating

Wait until 10 minutes past the hour

Note that a gap is left in the ribbon at the top of the hour.

By adding some trace statements to StartGetSequence, you can verify that shortly after 19:00, this period stops getting queried even though that interval is still well within the displayed timeline.

Additionally, these trace statements reveal that intervals in the future are queried continuously, even though SC seems to ignore any TimelineDataAreas that are in the future.

Expected behaviour: StartGetSequences is called with all intervals that are visible

I believe there is a bug in the part of SmartClient that chooses what TimeIntervals to pass to StarGetSequences.

Related: my earlier report about odd TimeIntervals being passed to StartGetSequences: https://developer.milestonesys.com/s/question/0D53X0000A2hjYmSQI/possible-bug-timelinesequencesource-is-polled-for-large-time-periods-even-after-smartclient-timeline-zoom-is-reduced-to-minimum

gaps showing in SC Timeline ribbon

NB: We have Milestone Partner membership, but I can’t find an appropriate support category for MIP SDK queries. Does our membership entitle us to raise a support ticket for this, and if show, which category should we use?

I can confirm your observations, but it is actually by design. Let me try to explain:

The Smart Client timeline always queries for whole hours, where it believe it does not have the full picture. That can either be because part of the hour is in the future (and thus might constantly change) or because it is on the edge of what is currently shown. Since the previous hour is considered complete after the hour-shift (and a response from your plugin for that entire hour has been received (the fact that you do not provide intervals for some of the hour in the eyes of the SC just means that you do not have any data to show)).

If you receive such data ‘from the past’ you should send the SmartClient.RefreshTimelineRequest message with the ID of your source in the RelatedFQID as described here: https://doc.developer.milestonesys.com/html/index.html?base=miphelp/class_video_o_s_1_1_platform_1_1_messaging_1_1_message_id_1_1_smart_client.html&tree=tree_search.html?search=messageid

This will make the timeline re-query the entire shown interval.

As to support cases I believe there is a SDK category or similar, but I must admit I am not strong with our support tools, so I cannot provide much advice there unfortunately.