Skip to content

fix: update ErrorTemplate to show Exception.Message#1731

Open
jonpryor wants to merge 1 commit intomainfrom
dev/jonpryor/jonp-show-Exception.Message-in-ErrorTemplate
Open

fix: update ErrorTemplate to show Exception.Message#1731
jonpryor wants to merge 1 commit intomainfrom
dev/jonpryor/jonp-show-Exception.Message-in-ErrorTemplate

Conversation

@jonpryor
Copy link
Copy Markdown
Collaborator

@jonpryor jonpryor commented Jan 27, 2026

Context: #1726
Context: #1730

Build and run `Chefs.csproj`` for e.g. net10.0-desktop and NativeAOT while using Uno 6.6.0-dev.3:

sed -i '' 's/"Uno.Sdk": ".*"/"Uno.Sdk": "6.6.0-dev.3"/g' global.json
git clean -xdf Chefs{,.Api}
dotnet publish -c Release -r osx-x64 -f net10.0-desktop -p:TargetFrameworkOverride=net10.0-desktop \
  -bl Chefs/Chefs.csproj -p:UseSkiaRendering=true -p:SkiaPublishAot=true \
  -p:SkiaPublishAot=true \
  -p:IlcGenerateMapFile=true -p:IlcGenerateMstatFile=true -p:IlcGenerateDgmlFile=true -p:IlcGenerateMetadataLog=true \
  -p:EmitCompilerGeneratedFiles=true -p:CompilerGeneratedFilesOutputPath=`pwd`/_gen
Chefs/bin/Release/net10.0-desktop/osx-x64/publish/Chefs

From the launch screen:

  1. Click Skip
  2. Click  Sign in with Apple
  3. Click 🔍Search on the left
  4. In the Search box, type m

When doing this with e838af9, the search results screen shows:

An error occurred.

Search Results > An error occurred

…which isn't particularly helpful.

Update ErrorTemplate within FeedView.xaml to also include the Exception.Message property contents:

An error occurred:
Reflection-based serialization has been disabled for this application. Use the IServiceCollection.AddJsonTypeInfo() or IHostBuilder.UseSerialization(IHostBuilder, IEnumerable, Action) extension methods to enable JSON deserialization for type System.Collections.Generic.Dictionary2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Chefs.Business.Models.SearchHistory, Chefs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]`.

Search Results > A better error message

The downside to this approach is that the Console log shows this message after signing in, after step (2), above:

fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
      The [Message] property getter does not exist on type [Chefs.Presentation.HomeViewModel]

as well as this message after going to the 🔍Search page, after step (3), above:

fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
      The [Search] property getter does not exist on type [Chefs.Presentation.SearchViewModel]

These messages appear because when ErrorTemplate is loaded, the associated DataContext is for HomeViewModel or SearchViewModel, neither of which has a Message property.

These fail messages can be ignored.

GitHub Issue (If applicable): #

PR Type

What kind of change does this PR introduce?

What is the current behavior?

What is the new behavior?

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tested code with current supported SDKs
  • Docs have been added/updated which fit documentation template. (for bug fixes / features)
  • Unit Tests and/or UI Tests for the changes have been added (for bug fixes / features) (if applicable)
  • Wasm UI Tests are not showing unexpected any differences. Validate PR Screenshots Compare Test Run results.
  • Contains NO breaking changes
  • Updated the Release Notes
  • Associated with an issue (GitHub or internal)

Other information

Internal Issue (If applicable):

@jonpryor jonpryor requested a review from agneszitte January 27, 2026 19:55
@jonpryor jonpryor force-pushed the dev/jonpryor/jonp-show-Exception.Message-in-ErrorTemplate branch from ecc7006 to 77932a3 Compare January 27, 2026 19:56
@jonpryor jonpryor requested a review from kazo0 January 27, 2026 19:56
Context: #1726
Context: #1730

Build and run `Chefs.csproj`` for e.g. net10.0-desktop and NativeAOT
while using Uno 6.6.0-dev.3:

	sed -i '' 's/"Uno.Sdk": ".*"/"Uno.Sdk": "6.6.0-dev.3"/g' global.json
	git clean -xdf Chefs{,.Api}
	dotnet publish -c Release -r osx-x64 -f net10.0-desktop -p:TargetFrameworkOverride=net10.0-desktop \
	  -bl Chefs/Chefs.csproj -p:UseSkiaRendering=true -p:SkiaPublishAot=true \
	  -p:SkiaPublishAot=true \
	  -p:IlcGenerateMapFile=true -p:IlcGenerateMstatFile=true -p:IlcGenerateDgmlFile=true -p:IlcGenerateMetadataLog=true \
	  -p:EmitCompilerGeneratedFiles=true -p:CompilerGeneratedFilesOutputPath=`pwd`/_gen
	Chefs/bin/Release/net10.0-desktop/osx-x64/publish/Chefs

From the launch screen:

 1. Click **Skip**
 2. Click ** Sign in with Apple**
 3. Click **🔍Search** on the left
 4. In the Search box, type `m`

When doing this with e838af9, the search results screen shows:

> An error occurred.

![Search Results > An error occurred][0]

…which isn't particularly helpful.

Update `ErrorTemplate` within `FeedView.xaml` to also include the
`Exception.Message` property contents:

> An error occurred:
> Reflection-based serialization has been disabled for this application. Use the IServiceCollection.AddJsonTypeInfo() or IHostBuilder.UseSerialization(IHostBuilder, IEnumerable<IJsonTypeInfoResolver>, Action<IServiceCollection>) extension methods to enable JSON deserialization for type `System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Chefs.Business.Models.SearchHistory, Chefs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]`.

![Search Results > A better error message][1]

The downside to this approach is that the Console log shows this
message after signing in, after step (2), above:

	fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
	      The [Message] property getter does not exist on type [Chefs.Presentation.HomeViewModel]

as well as this message after going to the 🔍Search page, after
step (3), above:

	fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
	      The [Search] property getter does not exist on type [Chefs.Presentation.SearchViewModel]

These messages appear because *when `ErrorTemplate` is loaded*, the
associated `DataContext` is for `HomeViewModel` or `SearchViewModel`,
neither of which has a `Message` property.

These `fail` messages can be ignored.

[0]: https://private-user-images.githubusercontent.com/155958/541004949-2be43b36-4eb1-42b1-b91d-e53a5e5545de.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Njk1NDQwNTMsIm5iZiI6MTc2OTU0Mzc1MywicGF0aCI6Ii8xNTU5NTgvNTQxMDA0OTQ5LTJiZTQzYjM2LTRlYjEtNDJiMS1iOTFkLWU1M2E1ZTU1NDVkZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwMTI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDEyN1QxOTU1NTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03YTkzNDBmOWJiNzA3M2Q4MTVhMmFhZWZlNzgyMTNlNzgzNmMwYjYzNWI2NWUwZTJkZjNiYTVhMDMwMDkyMWRmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.GVhTSVS_DsH64FV5Li4ppe2gaF9l849Im3Vba5HuFt8
[1]: https://github.com/user-attachments/assets/709f1ffd-e5fc-4d60-8027-c15029b9c799
@jonpryor jonpryor force-pushed the dev/jonpryor/jonp-show-Exception.Message-in-ErrorTemplate branch from 77932a3 to c9ca91a Compare January 27, 2026 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant