Skip to content

MatchError on newly generated site #131

Description

@utensil

MatchError at GET /

Exception:

** (MatchError) no match of right hand side value: {:error, "expected either a map or a map"}
    (tableau 0.23.0) lib/mix/tasks/tableau.build.ex:121: anonymous fn/2 in Mix.Tasks.Tableau.Build.run_extensions/2
    (elixir 1.18.3) lib/enum.ex:2546: Enum."-reduce/3-lists^foldl/2-0-"/3
    (tableau 0.23.0) lib/mix/tasks/tableau.build.ex:31: Mix.Tasks.Tableau.Build.run/1
    (mix 1.18.3) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
    (tableau 0.23.0) lib/tableau_dev_server/router.ex:61: TableauDevServer.Router.rerender/2
    (tableau 0.23.0) lib/tableau_dev_server/router.ex:1: TableauDevServer.Router.plug_builder_call/2
    (tableau 0.23.0) /Users/utensil/projects/tab_test/deps/plug/lib/plug/debugger.ex:155: TableauDevServer.Router.call/2
    (bandit 1.6.11) lib/bandit/pipeline.ex:130: Bandit.Pipeline.call_plug!/2

Code:

lib/mix/tasks/tableau.build.ex

116               %{enabled: Tableau.Extension.enabled?(module)},
117               :tableau |> Application.get_env(module, %{}) |> Map.new()
118             )
119   
120           if raw_config[:enabled] do
121>            {:ok, config} = validate_config(module, raw_config)
122   
123             {:ok, key} = Tableau.Extension.key(module)
124   
125             token = put_in(token.extensions[key], %{config: config})
126   

lib/enum.ex

No code available.

lib/mix/tasks/tableau.build.ex

26         |> Enum.to_list()
27   
28       {:ok, config} = Tableau.Config.get()
29       token = Map.put(token, :extensions, %{})
30   
31>      token = mods |> extensions_for(:pre_build) |> run_extensions(token)
32   
33       graph = Tableau.Graph.insert(token.graph, mods)
34   
35       File.mkdir_p!(out)
36   

lib/mix/task.ex

No code available.

lib/tableau_dev_server/router.ex

56       end
57     end
58   
59     defp rerender(conn, _) do
60       if conn.request_path != "/ws" do
61>        Mix.Task.rerun("tableau.build", ["--out", @out_dir])
62       end
63   
64       conn
65     end
66   end

lib/tableau_dev_server/router.ex

1>  defmodule TableauDevServer.Router do
2     @moduledoc false
3     use Plug.Router, init_mode: :runtime
4     use Plug.Debugger
5   
6     require Logger

/Users/utensil/projects/tab_test/deps/plug/lib/plug/debugger.ex

150             case conn do
151               %Plug.Conn{path_info: ["__plug__", "debugger", "action"], method: "POST"} ->
152                 Plug.Debugger.run_action(conn)
153   
154               %Plug.Conn{} ->
155>                super(conn, opts)
156             end
157           rescue
158             e in Plug.Conn.WrapperError ->
159               %{conn: conn, kind: kind, reason: reason, stack: stack} = e
160               Plug.Debugger.__catch__(conn, kind, reason, stack, @plug_debugger)

lib/bandit/pipeline.ex

125       end
126     end
127   
128     @spec call_plug!(Plug.Conn.t(), plug_def()) :: Plug.Conn.t() | no_return()
129     defp call_plug!(%Plug.Conn{} = conn, {plug, plug_opts}) when is_atom(plug) do
130>      case plug.call(conn, plug_opts) do
131         %Plug.Conn{} = conn -> conn
132         other -> raise("Expected #{plug}.call/2 to return %Plug.Conn{} but got: #{inspect(other)}")
133       end
134     end
135   

Connection details

Params

%{}

Request info

Headers

  • accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7
  • accept-encoding: gzip, deflate, br, zstd
  • accept-language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6,ru;q=0.5,de-DE;q=0.4,de;q=0.3,ja;q=0.2
  • connection: keep-alive
  • cookie: _streamlit_xsrf=2|65b7d83e|ab5691588f78695f30578a3236872ea5|1733473300; io=gsCddNmDpVHaI-LpAAAA; LOBE_THEME_APPEARANCE=light
  • host: localhost:4999
  • sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"
  • sec-ch-ua-mobile: ?0
  • sec-ch-ua-platform: "macOS"
  • sec-fetch-dest: document
  • sec-fetch-mode: navigate
  • sec-fetch-site: none
  • sec-fetch-user: ?1
  • upgrade-insecure-requests: 1
  • user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36

Session

nil
Image

To reproduce

mix tableau.new tab_test --template temple
cd tab_test
mix deps.get
mix tab_test.gen.post "My first post"
mix tableau.server

Then visit http://localhost:4999/

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