r12543
Getting UndefinedFunctionError for a variable, even after it is well defined
Hello,
I am getting the following error. Code is also mentioned below.
%UndefinedFunctionError{arity: 0, function: :offset, message: nil, module: nil, reason: nil}
{offset, _} = Integer.parse(headers["upload-offset"]). # headers["upload-offset"] returns a valid result everytime. "0", "452342" etc
upload_info = UploadCache.get(identifier)
if offset != upload_info.offset do. # here it crashes and throw the error.
... # doing something here
else
This does not happen every time. I found this issue in the production sometimes and I am not even able to reproduce this on my local machine. Can anyone give their inputs in what scenarios, this type of error can occur?
Stack trace
msg:Ranch listener OkApi.Router.HTTP, connection process #PID<0.19205.307>, stream 3 had its request process #PID<0.18116.307> exit with reason {{%UndefinedFunctionError{arity: 0, function: :offset, message: nil, module: nil, reason: nil},
[{nil, :offset,
[],
[]}, {ExTus.Actions, :patch, 3,
[file: 'lib/actions.ex', line: 81]}, {OkApi.TusRouter, :"-do_match/4-fun-7-", 2,
[file: 'lib/routers/tus_router.ex', line: 25]}, {OkApi.TusRouter, :dispatch, 2,
[file: 'lib/plug/router.ex', line: 284]}, {OkApi.TusRouter, :plug_builder_call, 2,
[file: 'lib/routers/tus_router.ex', line: 1]}, {Plug, :forward, 4,
[file: 'lib/plug.ex', line: 168]}, {OkApi.Router, :dispatch, 2,
[file: 'lib/plug/router.ex', line: 284]}, {OkApi.Router, :plug_builder_call, 2,
[file: 'lib/Router.ex', line: 1]}]}, {OkApi.Router, :call,
[%Plug.Conn{adapter: {Plug.Cowboy.Conn, :...}, assigns: %{}, before_send:
[], body_params: %Plug.Conn.Unfetched{aspect: :body_params}, cookies: %Plug.Conn.Unfetched{aspect: :cookies}, halted: false, host: "<some-host>", method: "PATCH", owner: #PID<0.18116.307>, params: %Plug.Conn.Unfetched{aspect: :params}, path_info:
["files", "<identifier>"], path_params: %{}, port: 80, private: %{}, query_params: %Plug.Conn.Unfetched{aspect: :query_params}, query_string: "", remote_ip: {..., .., ., ...}, req_cookies: %Plug.Conn.Unfetched{aspect: :cookies}, req_headers:
h=[
{"accept-encoding", "gzip"},
{"authorization", "<jwt_token>"},
{"connection", "keep-alive"},
{"content-type", "application/offset+octet-stream"},
{"host", "<some-host>.com"},
{"migration_ver", "2"},
{"newrelic", "...."},
{"traceparent", "..."},
{"tracestate", ",..."},
{"tus-resumable", "1.0.0"},
{"upload-metadata", "filename Y2JiMjA2OTgtZGNmYy00MTgwLWE3M2MtYzYxMGZjOTg5YWE5Lm1wNA=="},
{"upload-offset", "0"},
{"user-agent", "Dalvik/2.1.0 (Linux; U; Android 9; CPH2083 Build/PPR1.180610.011)"},
{"user_id", "....."},
{"x-forwarded-for", "....."},
{"x-forwarded-port", "443"},
{"x-forwarded-proto", "https"},
{"x-newrelic-id", "....."}
], request_path: "/files/<identifier>", resp_body: nil, resp_cookies: %{}, resp_headers:
[{"cache-control", "max-age=0, private, must-revalidate"}], scheme: :http, script_name:
[], secret_key_base: nil, state: :unset, status: nil},
[]]}} and stacktrace
[]
This is an open source function, here is the link extus/lib/actions.ex at 273f8b15588743787ca8a9abcb9d815ee2c9f8ae · bluzky/extus · GitHub
Thanks
Marked As Solved
michallepicki
Last Post!
r12543
AAAHH…that might be it. Thanks a lot, I was thinking that the offset variable is causing the issue. Let me check that. Thanks again.
0
Popular in Questions
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
Hey all,
I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
Hi everyone,
I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
i’m a new one to elixir
which editor can i use
vs code? or atom?
Thanks! :smiley:
New
Hi!
Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
Other popular topics
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set?
Thanks.
New
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
What is the idiomatic way of matching for not nil in Elixir?
E.g.,
First way:
defp halt_if_not_signed_in(conn, signed_in_account) when...
New
Credo is smart enough to check for (something like) this:
assert length(the_list) == 0
with this response:
Checking if an enum is empt...
New
What learn first? Rust or Elixir
Hi Elixir community!
I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex










