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

supabase / realtime / 6a1d77a5420203dcc840c17c888d82dff37f69e6

10 Dec 2025 03:40AM UTC coverage: 80.087% (-7.8%) from 87.901%
6a1d77a5420203dcc840c17c888d82dff37f69e6

push

github

web-flow
fix: improve metrics handling (#1654)

* Allow 3x more max heap size than other processes
* Avoid compressing given that gen_rpc does this for us already
* fix: remove limit_concurrent metric
* fix: revert the way we fetched tenants to report on connected metric

2 of 18 new or added lines in 3 files covered. (11.11%)

203 existing lines in 24 files now uncovered.

2200 of 2747 relevant lines covered (80.09%)

2956.01 hits per line

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

33.33
/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(
2✔
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)
2✔
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)
57
    |> render("error.json", message: "Unauthorized")
×
58
  end
59

60
  def call(conn, %Ecto.Changeset{valid?: false} = changeset) do
UNCOV
61
    log_error(
×
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)
UNCOV
69
    |> render("error.json", changeset: changeset)
×
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