Can't upload avatar in PleromaFE
Seems to only happen in PleromaFE, but I do get this in the server logs:
Apr 19 01:52:17 biribiri.dev pleroma[976]: 01:52:17.791 [info] PATCH /api/v1/accounts/update_credentials
Apr 19 01:52:17 biribiri.dev pleroma[976]: 01:52:17.811 request_id=Fncfa4mCM7NE6MIAG-nB [error] Elixir.Pleroma.Upload store (using Pleroma.Uploaders.Local) failed: :file_too_large
Apr 19 01:52:17 biribiri.dev pleroma[976]: 01:52:17.817 request_id=Fncfa4mCM7NE6MIAG-nB [error] Internal server error: %Protocol.UndefinedError{description: "Jason.Encoder protocol must always be explicitly implemented.\n\nIf you own the struct, you can derive the implementation specifying which fields should be encoded to JSON:\n\n @derive {Jason.Encoder, only: [....]}\n defstruct ...\n\nIt is also possible to encode all fields, although this should be used carefully to avoid accidentally leaking private information when new fields are added:\n\n @derive Jason.Encoder\n defstruct ...\n\nFinally, if you don't own the struct you want to encode to JSON, you may use Protocol.derive/3 placed outside of any module:\n\n Protocol.derive(Jason.Encoder, NameOfTheStruct, only: [...])\n Protocol.derive(Jason.Encoder, NameOfTheStruct)\n", protocol: Jason.Encoder, value: %Plug.Upload{content_type: "image/png", filename: "avatar.png", path: "/tmp/plug-1618/multipart-1618797137-518824124190820-2"}}
Apr 19 01:52:17 biribiri.dev pleroma[976]: 01:52:17.817 request_id=Fncfa4mCM7NE6MIAG-nB [info] Sent 500 in 25ms
Apr 19 01:52:17 biribiri.dev pleroma[976]: 01:52:17.819 [error] #PID<0.31011.29> running Pleroma.Web.Endpoint (connection #PID<0.27752.29>, stream id 1) terminated
Apr 19 01:52:17 biribiri.dev pleroma[976]: Server: biribiri.dev:80 (http)
Apr 19 01:52:17 biribiri.dev pleroma[976]: Request: PATCH /api/v1/accounts/update_credentials
Apr 19 01:52:17 biribiri.dev pleroma[976]: ** (exit) an exception was raised:
Apr 19 01:52:17 biribiri.dev pleroma[976]: ** (Protocol.UndefinedError) protocol Jason.Encoder not implemented for %Plug.Upload{content_type: "image/png", filename: "avatar.png", path: "/tmp/plug-1618/multipart-1618797137-518824124190820-2"} of type Plug.Upload (a struct), Jason.Encoder protocol must always be explicitly implemented.
Apr 19 01:52:17 biribiri.dev pleroma[976]: If you own the struct, you can derive the implementation specifying which fields should be encoded to JSON:
Apr 19 01:52:17 biribiri.dev pleroma[976]: @derive {Jason.Encoder, only: [....]}
Apr 19 01:52:17 biribiri.dev pleroma[976]: defstruct ...
Apr 19 01:52:17 biribiri.dev pleroma[976]: It is also possible to encode all fields, although this should be used carefully to avoid accidentally leaking private information when new fields are added:
Apr 19 01:52:17 biribiri.dev pleroma[976]: @derive Jason.Encoder
Apr 19 01:52:17 biribiri.dev pleroma[976]: defstruct ...
Apr 19 01:52:17 biribiri.dev pleroma[976]: Finally, if you don't own the struct you want to encode to JSON, you may use Protocol.derive/3 placed outside of any module:
Apr 19 01:52:17 biribiri.dev pleroma[976]: Protocol.derive(Jason.Encoder, NameOfTheStruct, only: [...])
Apr 19 01:52:17 biribiri.dev pleroma[976]: Protocol.derive(Jason.Encoder, NameOfTheStruct)
Apr 19 01:52:17 biribiri.dev pleroma[976]: . This protocol is implemented for the following type(s): Pleroma.Web.ActivityPub.ObjectValidators.EventValidator, Regex, Pleroma.Web.ActivityPub.ObjectValidators.AnswerValidator, Pleroma.Web.ApiSpec.Schemas.ChatMessage, Pleroma.Web.ApiSpec.Schemas.List, Pleroma.Web.ApiSpec.Schemas.Emoji, Tuple, Pleroma.Healthcheck, Pleroma.Web.ApiSpec.Schemas.Status, Pleroma.Object, Pleroma.Web.ApiSpec.Schemas.BooleanLike, Pleroma.Web.ApiSpec.Schemas.ScheduledStatus, Pleroma.Web.ApiSpec.Schemas.AccountField, Pleroma.User.NotificationSetting, Pleroma.Web.ApiSpec.Schemas.Conversation, Pleroma.Web.ApiSpec.Schemas.PushSubscription, Pleroma.Web.ApiSpec.Schemas.Chat, Pleroma.Web.ApiSpec.Schemas.Attachment, Pleroma.Web.ApiSpec.Schemas.Tag, Pleroma.Web.ApiSpec.Schemas.Account, Pleroma.Web.ActivityPub.ObjectValidators.ArticleNoteValidator, Pleroma.Web.ApiSpec.Schemas.Poll, Pleroma.Web.ActivityPub.ObjectValidators.AudioVideoValidator, Function, Pleroma.Emoji.Pack, Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator, Pleroma.Web.ApiSpec.Schemas.AccountRelationship, Pleroma.Web.ApiSpec.Schemas.FlakeID, Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator, Pleroma.Web.ApiSpec.Schemas.ActorType, Pleroma.Web.ApiSpec.Schemas.VisibilityScope, Pleroma.Web.ApiSpec.Schemas.ApiError, OpenApiSpex.OpenApi, Ecto.Schema.Metadata, Ecto.Association.NotLoaded, Jason.Fragment, Decimal, List, BitString, Time, Map, DateTime, NaiveDateTime, Integer, Float, Any, Atom, Date
Apr 19 01:52:17 biribiri.dev pleroma[976]: (jason 1.2.2) lib/jason.ex:199: Jason.encode_to_iodata!/2
Apr 19 01:52:17 biribiri.dev pleroma[976]: (postgrex 0.15.7) lib/postgrex/type_module.ex:897: Postgrex.DefaultTypes.encode_params/3
Apr 19 01:52:17 biribiri.dev pleroma[976]: (postgrex 0.15.7) lib/postgrex/query.ex:75: DBConnection.Query.Postgrex.Query.encode/3
Apr 19 01:52:17 biribiri.dev pleroma[976]: (db_connection 2.3.1) lib/db_connection.ex:1165: DBConnection.encode/5
Apr 19 01:52:17 biribiri.dev pleroma[976]: (db_connection 2.3.1) lib/db_connection.ex:1263: DBConnection.run_prepare_execute/5
Apr 19 01:52:17 biribiri.dev pleroma[976]: (db_connection 2.3.1) lib/db_connection.ex:557: DBConnection.parsed_prepare_execute/5
Apr 19 01:52:17 biribiri.dev pleroma[976]: (db_connection 2.3.1) lib/db_connection.ex:550: DBConnection.prepare_execute/4
Apr 19 01:52:17 biribiri.dev pleroma[976]: (postgrex 0.15.7) lib/postgrex.ex:214: Postgrex.query/4
On the frontend itself, I get the error Upload failed: Cannot read property 'includes' of undefined
.
This is on 2.3.0 stable from OTP.
Edited by normandy