Repository navigation
Fix silently discarded save failures in Language/DictionaryItem/Webhook serializers - #1039
Merged
KevinJump merged 1 commit intoAug 16, 2026
Merged
Conversation
…ok serializers SaveItemAsync discarded the Attempt<T, Status> returned by ILanguageService, IDictionaryItemService, and IWebhookService, so a failed create/update (e.g. an ISO code rejected by Umbraco's IsoCodeValidator) was silently dropped while the import still reported success. Now throws when the attempt fails, so the failure surfaces in the import results and log instead of vanishing. Fixes #1038 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This was referenced Aug 16, 2026
Fix silently discarded save failures in Language/DictionaryItem/Webhook serializers (v18 port)
#1040
Merged
KevinJump
added a commit
that referenced
this pull request
Aug 16, 2026
ContentTypeBaseSerializer (Media/Content/MemberType), ContentTypeSerializer, DataTypeSerializer, DomainSerializer, TemplateSerializer, MediaSerializer, and ContentSerializer all discarded (or logged-only) the Attempt/OperationResult from their underlying Create/Update/Save/Delete calls, the same silent-failure pattern fixed in #1038/#1039 for Language/DictionaryItem/Webhook. Each now checks success and throws with the operation status/result on failure, so the failure surfaces in the import results and log instead of being reported as a successful import. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks done
KevinJump
added a commit
that referenced
this pull request
Aug 16, 2026
ContentTypeBaseSerializer (Media/Content/MemberType), ContentTypeSerializer, DataTypeSerializer, DomainSerializer, TemplateSerializer, MediaSerializer, and ContentSerializer all discarded (or logged-only) the Attempt/OperationResult from their underlying Create/Update/Save/Delete calls, the same silent-failure pattern fixed in #1038/#1039 for Language/DictionaryItem/Webhook. Each now checks success and throws with the operation status/result on failure, so the failure surfaces in the import results and log instead of being reported as a successful import. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
LanguageSerializer.SaveItemAsyncdiscarded theAttempt<ILanguage, LanguageOperationStatus>returned byILanguageService.UpdateAsync/CreateAsync, so a save that Umbraco rejected (e.g. an ISO code theIsoCodeValidatordoesn't accept) was silently dropped — uSync still counted the item as imported and reported the run as successful._ = await ...discard pattern (as suggested in the issue) and found the identical bug inDictionaryItemSerializerandWebhookSerializer; fixed all three the same way.SaveItemAsyncnow checksattempt.Successand throws anInvalidOperationException(including the returned operation status) on failure. This is caught and reported by the existing handler exception handling, so the failure now surfaces in the import results and log instead of vanishing.Fixes #1038
Test plan
dotnet build uSync.Core/uSync.Core.csprojsucceedsen-NG.config) confirms the failure is now reported rather than silent🤖 Generated with Claude Code