Arc.File.new/1 doesnt have any documentation, but if you look at the source here: https://github.com/stavro/arc/blob/master/lib/arc/file.ex#L27
Arc.File.new/1 accepts a binary, a map that looks like %{filename: filename, binary: binary} or a map that looks like %{filename: filename, path: path}, none of which match your input %{file_name: “PICTURETEST.png”, updated_at: ~N[2018-10-24 16:15:58]}
Your challenge_group.avatar or changed value in UserTeam1Web.Controllers.ChallengeGroupController.delete/2 (I don’t know your code) as in stacktrace contains map with file_name and updated_at keys. Both Arc.Actions.Store.store/2 and Arc.Actions.Url.url/2 requires to have valid parameter for Arc.File.new/1 which are one of:
Remote url - i.e. binary which starts with http
Local url - i.e. any other binary like /path/to/file.extension or relational file path like: ./path/to/file.extension
Map which contains both of two keys: binary and filename
Map which contains both of two keys: filename and path
This means that if you pass map or struct with:
only one of those keys: binary, filename and path then it will fail
all of those keys: binary, filename and path then path key would be ignored
I don’t know your code and structs, so I can’t say what you can pass, because from this part of error:
I can see that you are passing onlyfile_name and updated_at, so what you need to do is:
Use file_name and pass it in remote url like: http://my.domain/path/to/#{challenge_group.avatar.file_name}
Use file_name and pass it in local url like: /path/to/#{challenge_group.avatar.file_nam} or: ./path/to/#{challenge_group.avatar.file_name}
Use File.read/1 or File.read!/1 to get content of file and pass it in binary key, remove not needed updated_at key and change key file_name to filename
Get path to file you are trying to reference with file_name, remove not needed updated_at key and change key file_name to filename