\r\n\r\n\r\n### Code of Conduct\r\n\r\n- [X] I agree to follow this project's Code of Conduct",[3044,3047,3050],{"name":3045,"color":3046},"bug","d73a4a",{"name":3048,"color":3049},"p3","D4C5F9",{"name":3051,"color":3034},"A-mass-mint",11280,"closed","switch button on mass mint onborading","2024-12-22T17:43:59Z","https://github.com/kodadot/nft-gallery/issues/11280",0.46800125,{"description":3059,"labels":3060,"number":3071,"owner":3019,"repository":3036,"state":3053,"title":3072,"updated_at":3073,"url":3074,"score":3075},"We need rapidly start registering errors we might encounter to deliver better quality for our service\r\nFeel free integrate something, we can then change keys or env once PR is made!:)\r\n\r\n## Candidates this so far\r\n### Has free plans\r\n- https://www.bugsnag.com/pricing -- used by Netlify afaik? (7.5k events/1seat)\r\n - https://www.bugsnag.com/platforms/vue-js \r\n- https://sentry.io/pricing/ \r\n - https://sentry.io/for/vue/\t\r\n\r\n### Pricey tho\r\n- https://logrocket.com/ - can record session to see how it happened \r\n- https://raygun.com/\r\n- https://trackjs.com/pricing/\r\n\r\n### Reading\r\n- https://flatlogic.com/blog/10-best-error-monitoring-and-error-tracking-tools/\r\n\r\n### Decision window\r\n- probably something which discounts open source projects if possible \r\n- really fluffy pots of integration, like webhooks at least so we can have some sort of emergency channel if something something goes terrible wrong and cut down times on response \r\n\r\nadd some others which we should have ",[3061,3063,3065,3068],{"name":3062,"color":3034},"A-research",{"name":3064,"color":3049},"p2",{"name":3066,"color":3067},"v2.2","6AC658",{"name":3069,"color":3070},"hacktoberfest","CFBB38",834,"Implement error tracking on client","2022-10-06T08:49:30Z","https://github.com/kodadot/nft-gallery/issues/834",0.7820185,{"description":3077,"labels":3078,"number":3086,"owner":3019,"repository":3036,"state":3053,"title":3087,"updated_at":3088,"url":3089,"score":3090},"Hey, it seems Sentry caught every day like over 100 errors (spike is when Pinata did upgrade) and I guess it would be nice to take a peak together on new errors. \r\nThe best what would be if Sentry could automatically log errors to our issues would be my ideal desired scenario, so we don't have many manual work to do and trust machines which actually offload some cognitive load. \r\n\r\n\r\n\r\n\r\n\r\n\r\nA lot of errors are still happening, even with a recent drop.\r\n\r\nSo I've taken a team plan, which has unlimited team members. \r\n\r\nI made @preschian @vikiival admin so they can invite you (@roiLeo) to mitigate some errors people haven't reported here \r\nI'll play with integrations to be more seamless.\r\n\r\nHappy to peak and mitigate many errors and improve the user experience! \r\n\r\n## Replays\r\nI was thinking of using this \r\n- https://docs.sentry.io/platforms/javascript/session-replay/\r\n- https://github.com/kodadot/nft-gallery/issues/4663\r\n\r\n## Profiling\r\nPlus we can resolve some issues taking a while for a good experience\r\n\r\n- https://docs.sentry.io/product/profiling/\r\n\r\n## Others\r\n- https://geekflare.com/frontend-web-monitoring/\r\nI'm not proficient in which error tracking is best, yet happy to adjust, for now going with team plan and mitigating most of errors would be good to go I guess:)\r\n\r\n## Alternatives\r\n- https://www.appsignal.com/\r\n- https://www.airbrake.io/pricing",[3079,3080,3083],{"name":3048,"color":3049},{"name":3081,"color":3082},"error-tracking","DA1128",{"name":3084,"color":3085},"profiling","B1783D",4659,"Sentry team plan ","2023-01-16T09:20:03Z","https://github.com/kodadot/nft-gallery/issues/4659",0.78937066,{"description":3092,"labels":3093,"number":3098,"owner":3019,"repository":3036,"state":3053,"title":3099,"updated_at":3100,"url":3101,"score":3102},"currently if worker returned error when creating / updating user profile\r\n\r\n1. the loader step of the modal stays indefinitely open\r\n2. there is no feedback to user about the error\r\n\r\n\r\nfix these",[3094,3095,3096],{"name":3045,"color":3046},{"name":3064,"color":3049},{"name":3097,"color":3034},"A-profile",10205,"handle profile BE error","2024-05-04T13:13:08Z","https://github.com/kodadot/nft-gallery/issues/10205",0.7934822,{"description":3104,"labels":3105,"number":3114,"owner":3019,"repository":3036,"state":3053,"title":3115,"updated_at":3116,"url":3117,"score":3118},"> That is something I would like to avoid. That's why we have the worker as it serves as proxy and we do not need to rework the component\r\n\r\n> maybe make a separate issue and can be done as supplement PR?\r\n\r\nnoted, so the task is to cache `Response.redirect()` on the workers side. it will help the proxy to resolve faster to cf-images\r\n\r\n_Originally posted by @preschian in https://github.com/kodadot/nft-gallery/issues/4587#issuecomment-1370866557_\r\n ",[3106,3109,3110,3112],{"name":3107,"color":3108},"$","0E8A16",{"name":3062,"color":3034},{"name":3111,"color":3049},"p4",{"name":3113,"color":3034},"A-worker",4595,"Faster Response.redirect() for image proxy","2023-01-16T19:30:34Z","https://github.com/kodadot/nft-gallery/issues/4595",0.81691545,{"description":3120,"labels":3121,"number":3125,"owner":3019,"repository":3036,"state":3053,"title":3126,"updated_at":3127,"url":3128,"score":3129},"## Description\r\nUsage of `Promise-like` values in statements without handling their errors appropriately is dangerous. Unhandled promises can cause several issues, such as improperly sequenced operations, ignored Promise rejections and more.\r\n\r\n## Occurrences\r\nThere are 4 occurrences of this issue in the repository.\r\n\r\nSee all occurrences on DeepSource → [deepsource.io/gh/kodadot/nft-gallery/issue/JS-0328/occurrences/](https://deepsource.io/gh/kodadot/nft-gallery/issue/JS-0328/occurrences/)\r\n\r\n\r\n\r\n",[3122,3123,3124],{"name":3045,"color":3046},{"name":3107,"color":3108},{"name":3048,"color":3049},2301,"(JS-0328) Invalid `Promise-like` handling","2022-02-10T16:43:16Z","https://github.com/kodadot/nft-gallery/issues/2301",0.81794953,{"description":3131,"labels":3132,"number":3141,"owner":3019,"repository":3036,"state":3053,"title":3142,"updated_at":3143,"url":3144,"score":3145},"**Is your feature request related to a problem? Please describe.**\r\nIt would be super nice to have unified components and have validation for them.\r\n\r\n**Describe the solution you'd like**\r\nUse [vee-validate](https://github.com/logaretm/vee-validate)\r\n\r\n**Describe alternatives you've considered**\r\n... may @JKrupinski, @AndriiHrynchuk would know other alternatives\r\n",[3133,3136,3139,3140],{"name":3134,"color":3135},"enhancement","a2eeef",{"name":3137,"color":3138},"good first issue","5319e7",{"name":3107,"color":3108},{"name":3048,"color":3049},786,"Better form validation","2024-07-31T11:42:24Z","https://github.com/kodadot/nft-gallery/issues/786",0.8215149,{"description":3147,"labels":3148,"number":3155,"owner":3019,"repository":3036,"state":3053,"title":3156,"updated_at":3157,"url":3158,"score":3159},"while I visit non-logged, got error from graphql endpoint \r\nhttps://beta.kodadot.xyz/snek/offers/\r\n\r\n```\r\n\"message\": \"Variable \\\"$id\\\" of required type \\\"String!\\\" was not provided.\",\r\n \"extensions\": {\r\n \"code\": \"BAD_USER_INPUT\",\r\n \"exception\": {\r\n \"stacktrace\": [\r\n \"GraphQLError: Variable \\\"$id\\\" of required type \\\"String!\\\" was not provided.\",\r\n \" at _loop (/squid/node_modules/graphql/execution/values.js:94:17)\",\r\n \" at coerceVariableValues (/squid/node_modules/graphql/execution/values.js:121:16)\",\r\n \" at getVariableValues (/squid/node_modules/graphql/execution/values.js:50:19)\",\r\n \" at buildExecutionContext (/squid/node_modules/graphql/execution/execute.js:203:61)\",\r\n \" at executeImpl (/squid/node_modules/graphql/execution/execute.js:101:20)\",\r\n \" at execute (/squid/node_modules/graphql/execution/execute.js:60:35)\",\r\n \" at execute (/squid/node_modules/apollo-server-core/dist/requestPipeline.js:205:48)\",\r\n \" at processGraphQLRequest (/squid/node_modules/apollo-server-core/dist/requestPipeline.js:148:34)\",\r\n \" at runMicrotasks (\u003Canonymous>)\",\r\n \" at processTicksAndRejections (node:internal/process/task_queues:96:5)\"\r\n ]\r\n }\r\n }\r\n```\r\n\r\n\r\n",[3149,3150,3151,3153],{"name":3107,"color":3108},{"name":3064,"color":3049},{"name":3152,"color":3034},"A-basilisk",{"name":3154,"color":3034},"A-subsquid",3920,"bad user input at global offers ","2022-09-12T08:32:59Z","https://github.com/kodadot/nft-gallery/issues/3920",0.8228216,["Reactive",3161],{},["Set"],["ShallowReactive",3164],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fPbVGRhc4SZtkvH6sVBo4VqL2Ljn9rVURAGSzd_KYjJM":-1},"/kodadot/nft-gallery/11420"]