Conversation
With route and unexpected error handling. Uses StackTracey to display source-mapped, first-party-only stack traces.
As "recommended" in the StackTracey README file.
jreidinger
reviewed
Mar 9, 2026
jreidinger
reviewed
Mar 9, 2026
jreidinger
reviewed
Mar 9, 2026
jreidinger
reviewed
Mar 9, 2026
- Extract ErrorTrace component to handle stack trace rendering and loading state for making code easier to read and maintain. - Extract relevantTrace helper to encapsulate first-party frame filtering with fallback to full stack when all frames are third-party - Use isError from radashi instead of instanceof Error
Contributor
Author
|
PR updated. Please find the new screenshots attachments to see how these new changes looks now 😉 Note that when the trace is too long (normally because there is only thirdParty frames) the layout it is a bit ugly. Out of the scope of this PR to achieve better alignment, sorry. |
jreidinger
approved these changes
Mar 10, 2026
Contributor
Author
|
Realized that it was in the backlog. For reference, https://trello.com/c/VsMKx0eX (protected link). |
Merged
imobachgs
added a commit
that referenced
this pull request
Mar 17, 2026
Prepare to release version 19. * #1829 * #2508 * #2772 * #2818 * #2826 * #2848 * #2860 * #2863 * #2864 * #2866 * #2867 * #2869 * #2870 * #2871 * #2872 * #2873 * #2874 * #2875 * #2876 * #2877 * #2880 * #2881 * #2882 * #2884 * #2885 * #2886 * #2891 * #2892 * #2893 * #2894 * #2895 * #2896 * #2897 * #2898 * #2899 * #2900 * #2901 * #2902 * #2903 * #2904 * #2908 * #2909 * #2910 * #2912 * #2913 * #2914 * #2915 * #2916 * #2917 * #2918 * #2920 * #2921 * #2923 * #2924 * #2926 * #2928 * #2929 * #2930 * #2933 * #2934 * #2935 * #2936 * #2937 * #2938 * #2939 * #2942 * #2943 * #2944 * #2945 * #2946 * #2947 * #2948 * #2949 * #2950 * #2951 * #2952 * #2954 * #2955 * #2956 * #2957 * #2958 * #2959 * #2960 * #2961 * #2963 * #2964 * #2965 * #2967 * #2968 * #2969 * #2970 * #2971 * #2972 * #2974 * #2975 * #2977 * #2978 * #2980 * #2981 * #2982 * #2983 * #2984 * #2988 * #2989 * #2990 * #2991 * #2992 * #2993 * #2994 * #2995 * #2996 * #2997 * #2998 * #2999 * #3000 * #3001 * #3002 * #3004 * #3005 * #3006 * #3007 * #3008 * #3009 * #3011 * #3012 * #3013 * #3014 * #3015 * #3016 * #3018 * #3019 * #3020 * #3021 * #3022 * #3023 * #3024 * #3025 * #3026 * #3027 * #3028 * #3029 * #3030 * #3031 * #3033 * #3034 * #3035 * #3036 * #3037 * #3039 * #3040 * #3041 * #3042 * #3043 * #3044 * #3045 * #3046 * #3047 * #3048 * #3049 * #3050 * #3051 * #3052 * #3053 * #3054 * #3055 * #3056 * #3057 * #3058 * #3060 * #3061 * #3062 * #3063 * #3064 * #3065 * #3066 * #3067 * #3068 * #3069 * #3070 * #3071 * #3072 * #3073 * #3074 * #3075 * #3076 * #3077 * #3078 * #3079 * #3086 * #3087 * #3088 * #3089 * #3090 * #3091 * #3092 * #3093 * #3094 * #3095 * #3096 * #3097 * #3098 * #3099 * #3100 * #3101 * #3102 * #3103 * #3104 * #3105 * #3106 * #3107 * #3108 * #3109 * #3110 * #3112 * #3113 * #3114 * #3115 * #3116 * #3117 * #3118 * #3119 * #3120 * #3122 * #3123 * #3124 * #3127 * #3128 * #3129 * #3130 * #3131 * #3133 * #3134 * #3135 * #3136 * #3137 * #3138 * #3139 * #3140 * #3141 * #3142 * #3143 * #3144 * #3145 * #3146 * #3147 * #3148 * #3149 * #3150 * #3151 * #3152 * #3153 * #3154 * #3155 * #3157 * #3158 * #3159 * #3160 * #3161 * #3162 * #3163 * #3164 * #3165 * #3166 * #3167 * #3168 * #3169 * #3170 * #3174 * #3175 * #3176 * #3177 * #3178 * #3179 * #3181 * #3182 * #3184 * #3185 * #3186 * #3188 * #3189 * #3190 * #3191 * #3192 * #3194 * #3195 * #3196 * #3197 * #3198 * #3199 * #3200 * #3201 * #3202 * #3203 * #3205 * #3206 * #3208 * #3209 * #3210 * #3213 * #3214 * #3215 * #3216 * #3217 * #3218 * #3219 * #3220 * #3222 * #3223 * #3224 * #3225 * #3226 * #3227 * #3228 * #3229 * #3230 * #3231 * #3232 * #3233 * #3234 * #3235 * #3236 * #3237 * #3238 * #3239 * #3240 * #3241 * #3242 * #3243 * #3244 * #3246 * #3247 * #3248 * #3250 * #3251 * #3252 * #3253 * #3254 * #3255 * #3256 * #3257 * #3258 * #3259 * #3260 * #3261 * #3262 * #3263 * #3265 * #3266 * #3267 * #3268 * #3269 * #3270 * #3271 * #3272 * #3273 * #3274 * #3275 * #3276 * #3277 * #3278 * #3279 * #3280 * #3281 * #3282 * #3283 * #3284 * #3285 * #3286 * #3287 * #3288 * #3289 * #3290 * #3291
bmwiedemann
pushed a commit
to bmwiedemann/openSUSE
that referenced
this pull request
Mar 18, 2026
https://build.opensuse.org/request/show/1340724 by user IGonzalezSosa + anag_factory - Version 19 - Prevent bulk selection using stale data (gh#agama-project/agama#3289). - Log actions failures (related to bsc#1259354). - Change network web user interface to offer more control and interaction with connections (gh#agama-project/agama#3247). - Prevent error when there is no zFCP config (gh#agama-project/agama#3287). - Prevent error when displaying reused LVM VGs (related to gh#agama-project/agama#3210, jsc#PED-15104, bsc#1254718 and gh#agama-project/agama#3171). - Sync system schema with the backend (related to the fix for bsc#1258486). - Improve error page with filtered, source-mapped stack traces for better error reporting (gh#agama-project/agama#3261).
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.
Problem
When Agama crashes due to an unexpected error, an ugly page with a cryptic error message is shown most of the time.
Solution
Render a more appealing
ErrorPagewith a better formatted error message, filtering out third-party references from the stack trace and pointing to the exact location where the error originated (or at least something more accurate than what was displayed until now).Note about error location
The new
ErrorPageintroduces StackTracey as a dependency, which allows usingwithSources/withSourcesAsyncto display the original source location instead of the compiled build location, by leveraging source maps.The output is equivalent to using
source-maps-clias described at https://lists.opensuse.org/archives/list/yast-devel@lists.opensuse.org/thread/OHU6OJAMXTPD6SXXOGKC6Q2K6U7RBFDO/, though be aware the location might be approximate. Not entirely sure why, possibly because it is the original file without comment lines and other build optimizations. In any case,React.createElementline in the examples points exactly to the problem, at least in the manual testing done to validate these changes.Note about the
as-tabledependencyThis PR uses the
.asTable()method, which pulls in theas-tabledependency from the same author as StackTracey. Althoughas-tablehas not been updated in a long time, it only has one further dependency (also from the same author) and does not appear to be a problem. In any case, as documented in the code:Tests
Screenshots
Click to show/hide more screenshots
Waiting for error details
A route error
A not standard Error
An error with only thirdParty frames
Follow-up
Among other
crazy ideasimprovements, maybe the download logs button could be added to such an error page if the server still alive. But out of the scope of this fast-track PR intended for both, making the error message more useful from the very beginning and provide a kind of nicer error page.