duplicati/duplicati · error · UserInformationException
PureFTPdTruncatedListing
PureFTPdTruncatedListing
Error message
PureFTPd server effectively truncated the listing due to LimitRecursion parameter - please check documentation for more information
What it means
Error "PureFTPd server effectively truncated the listing due to LimitRecursion parameter - please check documentation for more information" thrown in duplicati/duplicati.
Source
Thrown at Duplicati/Library/Backend/FTP/FTPBackend.cs:364
public async IAsyncEnumerable<IFileEntry> ListAsync([EnumeratorCancellation] CancellationToken cancelToken)
{
FtpListItem[] items;
try
{
var client = await CreateClient(cancelToken).ConfigureAwait(false);
var remotePath = PreparePathForClient(null);
items = await Utility.Utility.WithTimeout(_timeouts.ListTimeout, cancelToken, ct =>
client.GetListing(remotePath, FtpListOption.Modify | FtpListOption.Size, ct)
).ConfigureAwait(false);
if (client.ServerType == FtpServer.PureFTPd)
{
// If the list was truncated an exception has to be raised as the listing is incomplete and can lead to misleading backup/restore results
if (client.LastReplies.Any(x =>
x.Code == "226" &&
x.Message.Contains("truncated", StringComparison.InvariantCultureIgnoreCase)))
throw new UserInformationException("PureFTPd server effectively truncated the listing due to LimitRecursion parameter - please check documentation for more information", "PureFTPdTruncatedListing");
// If no truncation occured and the ignore flag is not set, issue an advisory message
if (!_IgnorePureFTPdLimitIssue)
Log.WriteWarningMessage(LogTag, "PureFTPdIssue", null, Strings.DescriptionIgnorePureFTPLong);
}
}
catch (Exception e)
{
TranslateException(null, e);
throw;
}
foreach (var item in items)
{
switch (item.Type)
{
case FtpObjectType.Directory:
if (item.Name == "." || item.Name == "..")
View on GitHub (pinned to 3f348be3e3)
Solutions
- Increase the PureFTPd LimitRecursion setting on the server.
- Split the backup into multiple destinations/folders with fewer files.
- Suppress the warning with the documented option if the file count is acceptable.
When it happens
Trigger: Thrown at Duplicati/Library/Backend/FTP/FTPBackend.cs:364 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of duplicati/duplicati@3f348be3e3 (2026-08-13).
Data as JSON: /api/errors/3c55daee5effdfa8.
Report an issue: GitHub.