Skip to content

Improve reconnect error page UI and network handling#1488

Open
AaineeSinha wants to merge 1 commit intozulip:mainfrom
AaineeSinha:main
Open

Improve reconnect error page UI and network handling#1488
AaineeSinha wants to merge 1 commit intozulip:mainfrom
AaineeSinha:main

Conversation

@AaineeSinha
Copy link
Collaborator

Description

This PR provides a comprehensive update to the network error handling and app initialization flow. It replaces the default system/blank error page with a custom Zulip-branded “Unable to connect” UI and resolves the brief white screen flash that occurred during application startup.

Key improvements

Custom error UI

  • Replaces system defaults with a modern troubleshooting card in network.html
  • Provides clear action steps and a more friendly user experience during connectivity failures

Startup optimization

  • Fixes the startup white-flash issue by applying a persistent background color in the main process (app/main/index.ts)

Logic recovery and stabilization

  • Fixes previously broken TypeScript logic in common utilities (logger-util.ts, messages.ts, typed-ipc.ts)
  • Updates the IPC bridge to improve stability during network failure and reconnect scenarios

Build integrity

  • Synchronizes package.json and pnpm-lock.yaml with required dependencies (including Zod and Electron Remote)
  • Resolves module resolution and TypeScript build errors encountered during development

Screenshots and screen captures

ui changed

Zulip.error.1.mp4

Updated reconnect error page UI

Platforms this PR was tested on

  • Windows (verified on Windows 11)
Self-review checklist
  • Self-reviewed the changes for clarity and maintainability
  • Explains differences from previous plans (moved error handling to a robust injection method so the UI loads even when the server connection fails)
  • Highlights technical choices and bugs encountered (resolved 140+ TypeScript errors related to template literals and reserved keywords)
  • Visual appearance verified on Windows
  • End-to-end functionality of reconnect flows and UI interactions tested
  • Corner cases and error conditions (including SSL failures) manually verified

Summary of changes

  • Main process: Updated app/main/index.ts and request.ts to improve startup rendering and failure handling
  • Common logic: Fixed TypeScript syntax and IPC issues in shared utilities
  • Renderer UI: Redesigned network.html and updated related CSS/TS
  • Project config: Updated Electron Vite config and dependency lockfiles

@alya
Copy link
Collaborator

alya commented Dec 31, 2025

Thanks! What does the UI you're proposing to replace look like now? Is there an issue this is solving?

In general, design changes are made with community discussion.

@AaineeSinha
Copy link
Collaborator Author

ui changed

This is how the new UI looks right now has more vibrant colors not like the previous one. I ran it on my laptop windows 11 and the codes perfectly ran although sometimes the processing speed was a bit slow but it's working.

@alya
Copy link
Collaborator

alya commented Dec 31, 2025

I mean what does the current UI look like, not your proposed new UI.

@alya
Copy link
Collaborator

alya commented Dec 31, 2025

What's going on with your images? Are you taking pictures of your computer?

@AaineeSinha
Copy link
Collaborator Author

previous ui

Yes, I am taking photos of my laptop there is some issue with my laptop I can't access certain features and taking screenshot is one of them.

@alya
Copy link
Collaborator

alya commented Jan 2, 2026

OK, please get that figured out, so that your work can be reviewed.

@AaineeSinha
Copy link
Collaborator Author

ui2

Now I can take the screenshots. This is the changed ui

@alya
Copy link
Collaborator

alya commented Jan 6, 2026

Is this PR solving an open issue? If so, please link to it from the PR description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants