Skip to content

[Bug]: Deleting an incomplete GitHub App source renders name on null #12017

Description

@tipani86

Description and Error Message

Deleting a newly created but not-yet-configured GitHub App source succeeds, but the Livewire UI then surfaces an error similar to:

Attempt to read property "name" on null

The affected path is the GitHub App setup screen before app_id has been configured. Change::delete() deletes the model, sets $this->github_app = null, and redirects. The modal performs a Livewire refresh/morph around the delete action, so the component view can render once with a null model.

PR #11105 addressed this general post-delete re-render problem by guarding authorization checks and clearing the deleted model. However, the current GitHub source Blade still contains unguarded model dereferences:

{{ $github_app->name ?: 'GitHub App' }}

and, in the not-yet-configured branch:

@js($github_app->only(['organization', 'html_url']))

That second dereference makes the problem especially reproducible when deleting a source before completing GitHub setup. The source is removed correctly; the error is surfaced during the transient post-delete render.

Expected Behavior

  1. Deleting an unused, partially configured GitHub App source completes without a server or Livewire rendering error.
  2. The user is redirected to the Sources list.
  3. The deleted source no longer appears.
  4. The Blade view remains safe if $github_app is temporarily null during the redirect lifecycle.

Steps to Reproduce

  1. Open Sources in a self-hosted Coolify instance.
  2. Create a new GitHub App source and enter a name/organization.
  3. Before completing GitHub registration and before setting app_id or installation credentials, open the source's delete action.
  4. Confirm the GitHub App source name and permanently delete it.
  5. Observe that the source is deleted, but the UI surfaces an error concerning the name property on null during the post-delete render.
  6. Refresh or return to Sources and confirm the deletion itself succeeded.

Example Repository URL

Not repository-specific; no application repository needs to be connected.

Coolify Version

v4.3.23. The same unguarded Blade dereferences are also present on current main and next as of September 25, 2026.

Are you using Coolify Cloud?

No (self-hosted)

Operating System and Version (self-hosted)

Host operating system does not appear relevant; the failure occurs in the Livewire component render lifecycle.

Screenshots / Visuals

No screenshot available. The deletion succeeds and the transient error references the name field/property.

Additional Information

Related prior work:

The equivalent GitLab source Blade uses the component's scalar $name property for the page title, which is safe during this transient state. A minimal fix is to use $name for the GitHub page title and guard or snapshot the values used by the setup script before the model is cleared. A regression test should delete an incomplete GitHub App through the Livewire component and assert a redirect without an exception during rendering.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions