coollabsio/coolify · error · Exception
Only team administrators and owners can modify terminal acce
Error message
Only team administrators and owners can modify terminal access.
What it means
toggleTerminal() on the server Security > Terminal access screen passes authorize('update', $server) but additionally requires the acting user to be an admin or owner of the current team via auth()->user()->isAdmin() (Role::ADMIN rank or higher). Members can view the toggle but cannot flip is_terminal_enabled - enabling SSH terminal access on a server is restricted to team administrators and owners.
Source
Thrown at app/Livewire/Server/Security/TerminalAccess.php:41
try {
$this->server = Server::ownedByCurrentTeam()->whereUuid($server_uuid)->firstOrFail();
$this->authorize('update', $this->server);
$this->parameters = get_route_parameters();
$this->syncData();
} catch (\Throwable) {
return redirect()->route('server.index');
}
}
public function toggleTerminal($password, $selectedActions = [])
{
try {
$this->authorize('update', $this->server);
// Check if user is admin or owner
if (! auth()->user()->isAdmin()) {
throw new \Exception('Only team administrators and owners can modify terminal access.');
}
// Verify password
if (! verifyPasswordConfirmation($password, $this)) {
return 'The provided password is incorrect.';
}
// Toggle the terminal setting
$this->server->settings->is_terminal_enabled = ! $this->server->settings->is_terminal_enabled;
$this->server->settings->save();
// Update the local property
$this->isTerminalEnabled = $this->server->settings->is_terminal_enabled;
$status = $this->isTerminalEnabled ? 'enabled' : 'disabled';
$this->dispatch('success', "Terminal access has been {$status}.");
return true;View on GitHub (pinned to 70b9acc424)
Solutions
- Ask a team admin or owner to toggle terminal access for the server
- Have an owner promote the member to admin if they should manage terminal access
- Reload the page - the UI should reflect the current role before you retry
- Check the user's membership role in the team members screen if access seems wrong
Example fix
// blade: before
<button wire:click="toggleTerminal(...)">Toggle</button>
// blade: after
@if(auth()->user()->isAdmin())
<button wire:click="toggleTerminal(...)">Toggle</button>
@endif Defensive patterns
Strategy: validation
Validate before calling
if (! auth()->user()->isAdmin()) {
// hide/disable the terminal toggle in the UI before toggleTerminal is invoked
} Try / catch
Catch \Exception (and the incorrect-password string return) in the action; dispatch('error', ...) for the role failure and keep the password-confirmation path separate so users know which check failed. Prevention
- Render the toggle only for admins/owners
- Confirm your team role on the members screen before trying
- Reload the page after role changes
When it happens
Trigger: A MEMBER-role user (or a demoted admin with a stale session) submitting the toggle with their confirmed password; the password itself is verified only after this role check, so a correct password does not bypass it.
Common situations: Role changes after the page was opened; new collaborators invited as members trying to enable terminal; assuming per-server policy alone governs the switch.
Related errors
- Recipient is not part of the team
- Destination does not belong to the current team.
- The server is unavailable, so local backup archives cannot b
- Server is disabled.
- Server not found.
AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17).
Data as JSON: /api/errors/b6486892e1431992.
Report an issue: GitHub.