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
The error is about upload_info being nil. nil.offset fails with that error
1
Popular in Questions
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
** (DBConnection.ConnectionError) connection not available and request was dropped from queue after 2733ms. You can configure how long re...
New
If I have a post route which an argument:
post /my_post_route/:my_param1, MyController.my_post_handler
How would get the post params ...
New
Is there a way to get the call stack or stack trace at any point in the code? Not from exceptions, but an expression that returns how the...
New
Hello all!
I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
ExUnit now has describe blocks which is a welcome addition coming from RSpec. In the docs, it states that nested hierarchies of describe ...
New
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)?
Would
mix ecto.rollback -v 200809061...
New
Hello, how can I check the Phoenix version ?
Thanks !
New
Hello, I have map which I want to convert it to string like this:
the map:
%{last_name: "tavakkoli", name: "shahryar"}
the string I ne...
New
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
Other popular topics
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
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
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
New
I tried installing
elixir 1.11.2
erlang 23.3.4
via asdf in my zsh shell. Enabled the versions locally and globally.
When I list them ...
New
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
i’m a new one to elixir
which editor can i use
vs code? or atom?
Thanks! :smiley:
New
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including.
What is Phoenix LiveV...
New
Update:
How to use the Blogs & Podcasts section
You can post links to your blog posts or podcasts either in one of the Official Blog...
New








