Repository navigation
fix(hosting): a hosting panel that does not answer no longer gives the customer a 500 - #185
Merged
Panelica merged 4 commits intoOct 11, 2026
Conversation
… to the service page with a message instead of a 500
… a panel that is down does not hold a page
…customer, and the service page still opens
Owner
|
Thank you, @ertugrulkeyvan, merged. A panel that is down now gives the customer a clear message instead of a "Server Error", and the five-second connect limit stops a dead panel from holding the page. One note on the merge: #180 had just added the mail certificate texts at the end of Full suite green. |
Panelica
pushed a commit
that referenced
this pull request
Oct 12, 2026
… form the panel may have carried out says so #185 gave every call to a Panelica panel five seconds to connect. That was meant for a customer waiting on a page. The scheduler, the queue and staff screens wait ten again, Laravel's default, so a slow network does not fail an account that is being set up or suspended. A ConnectionException is also what a request that reached the panel and was not answered in time gives. After a form (a container being deployed, a backup), "try again in a few minutes" could do the work twice. When cURL reports that the request was sent, the customer is told it may still be done there and to check before trying again; a page that was only being read keeps the old message. App\Support\ConnectionFailure reads this from cURL's transfer figures, or from its message when there are none. The file editor's content is no longer kept in the session after a failed save; the editor reads the file from the panel again. New message client.hosting.panel_no_answer_in_time in en, tr, de, pl and zh. The three new behaviours are tested and fail on main.
Owner
|
Thank you again for #185, @ertugrulkeyvan. We added a follow-up on
Each has a test that fails without the change, and the full suite passes. |
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.
What
When the hosting panel does not answer, the customer gets a message instead of a 500 "Server Error".
Every hosting tab on a service asks the panel first: email, DNS, files, FTP, databases, cron, Node.js, backups, containers and subdomains. When the panel was unreachable, the request's
ConnectionExceptionwent up past all of them as a 500.We saw it when we cut a test install off from its panel. All ten tabs gave "Server Error", and each kept the browser waiting for the connection attempt first.
After this:
Unchanged:
How
bootstrap/app.php: a renderer forIlluminate\Http\Client\ConnectionExceptiononclient.services.*routes, exceptclient.services.showand JSON requests. A GET with a service goes to the service page; anything else goes back with input. The failure is logged with the route name.PanelicaModule:connectTimeout(5)on every request it makes to the panel.client.hosting.panel_unreachablein en, tr, de, pl and zh.The work is split into four commits: the handler, the translations, the connect timeout and the tests.
Tests
tests/Feature/HostingPanelUnreachableTest.php, 6 tests, withHttp::failedConnection():Four of them fail on
main. All Panelica tests pass unchanged.Full suite: 4092 passed. The one failure is the
CurrencyAndBackupTestdb backup test, which fails onmaintoo in my local setup.