• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / realtime / ee66783c896d369f28801690756c70f972809809

31 Oct 2025 06:32AM UTC coverage: 87.231% (+0.2%) from 87.079%
ee66783c896d369f28801690756c70f972809809

push

github

web-flow
fix: subscriptions error rate limit (#1600)

20 of 22 new or added lines in 3 files covered. (90.91%)

3 existing lines in 2 files now uncovered.

2268 of 2600 relevant lines covered (87.23%)

3164.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

50.0
/lib/realtime_web/controllers/fallback_controller.ex
1
defmodule RealtimeWeb.FallbackController do
2
  @moduledoc """
3
  Translates controller action results into valid `Plug.Conn` responses.
4

5
  See `Phoenix.Controller.action_fallback/1` for more details.
6
  """
7

8
  use RealtimeWeb, :controller
9
  use Realtime.Logs
10

11
  import RealtimeWeb.ErrorHelpers
12

13
  def call(conn, {:error, :not_found}) do
14
    conn
15
    |> put_status(:not_found)
16
    |> put_view(RealtimeWeb.ErrorView)
17
    |> render("error.json", message: "Not found")
×
18
  end
19

20
  def call(conn, {:error, %Ecto.Changeset{} = changeset}) do
21
    log_error(
3✔
22
      "UnprocessableEntity",
23
      Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
24
    )
25

26
    conn
27
    |> put_status(:unprocessable_entity)
28
    |> put_view(RealtimeWeb.ChangesetView)
29
    |> render("error.json", changeset: changeset)
3✔
30
  end
31

32
  def call(conn, {:error, status, message}) when is_atom(status) and is_binary(message) do
33
    log_error("UnprocessableEntity", message)
2✔
34

35
    conn
36
    |> put_status(status)
37
    |> put_view(RealtimeWeb.ErrorView)
38
    |> render("error.json", message: message)
2✔
39
  end
40

41
  def call(conn, {:error, %Ecto.Changeset{valid?: false} = changeset}) do
42
    log_error(
×
43
      "UnprocessableEntity",
44
      Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
45
    )
46

47
    conn
48
    |> put_status(:unprocessable_entity)
49
    |> put_view(RealtimeWeb.ChangesetView)
50
    |> render("error.json", changeset: changeset)
×
51
  end
52

53
  def call(conn, {:error, _}) do
54
    conn
55
    |> put_status(:unauthorized)
56
    |> put_view(RealtimeWeb.ErrorView)
NEW
57
    |> render("error.json", message: "Unauthorized")
×
58
  end
59

60
  def call(conn, %Ecto.Changeset{valid?: false} = changeset) do
61
    log_error(
1✔
62
      "UnprocessableEntity",
63
      Ecto.Changeset.traverse_errors(changeset, &translate_error/1)
64
    )
65

66
    conn
67
    |> put_status(:unprocessable_entity)
68
    |> put_view(RealtimeWeb.ChangesetView)
69
    |> render("error.json", changeset: changeset)
1✔
70
  end
71

72
  def call(conn, response) do
73
    log_error("UnknownErrorOnController", response)
×
74

75
    conn
76
    |> put_status(:unprocessable_entity)
77
    |> put_view(RealtimeWeb.ErrorView)
78
    |> render("error.json", message: "Unknown error")
×
79
  end
80
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc