Skip to content

PageIterator Not Following DeltaLink #2232

@Freenex1911

Description

@Freenex1911

Describe the bug
The PageIterator is not following DeltaLink when I call IterateAsync() again.

To Reproduce
Run the following code and set a debug point at foreach and check the DeltaLink.

PageIterator<Message, DeltaGetResponse> pageIterator = null;
while (true)
{
	var messages = new List<Message>();

	if (pageIterator == null)
	{
		var response = await graphServiceClient.Users["..."].MailFolders["Inbox"].Messages.Delta.GetAsDeltaGetResponseAsync(x => x.Headers.Add("Prefer", "IdType=\"ImmutableId\""));
		pageIterator = PageIterator<Message, DeltaGetResponse>.CreatePageIterator(graphServiceClient, response, value =>
		{
			messages.Add(value);
			return true;
		});
	}

	await pageIterator.IterateAsync();

	foreach (var message in messages)
		await HandleMessage(message);

	await Task.Delay(10000);
}

Expected behavior
When I execute IterateAsync() again, I expect that it will follow DeltaLink to iterate over all pages again, as outlined in upgrade-to-v5.md.

Client version
5.36.0

Desktop:

  • OS: Windows 11
  • Browser: Firefox
  • Version: 120.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions