Skip to content

Unable to display images or upload user image updates #3

@mus3000

Description

@mus3000

I encountered some problems, regarding the inability to display images normally on the All Files page, and when clicking download, {"code":"InvalidStoragePath","message":"Invalid storage path: "xxxxxxx" is not a valid UUID string."},
When updating user image, check the convex log and it will show
failure.
Mutation
users:updateUser

Maybe the problem lies in the url or the tokenIdentifier?

this is my code

case "user.created":
          await ctx.runMutation(internal.users.createUser, {
            tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.id}`,
            name: `
              ${result.data.first_name ?? ""} 
              ${result.data.last_name ?? ""}
            `,
            image: result.data.image_url,
          });
          break;
        case "user.updated":
          await ctx.runMutation(internal.users.updateUser, {
            tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.id}`,
            name: `
              ${result.data.first_name ?? ""} 
              ${result.data.last_name ?? ""}
            `,
            image: result.data.image_url,
          });
          break;
        case 'organizationMembership.created':
            await ctx.runMutation(internal.users.addOrgIdToUser, {
                tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.public_user_data.user_id}`,
                orgId: result.data.organization.id,
                role: result.data.role === 'org:admin' ? "admin" : "member",
            });
            break;
          case 'organizationMembership.updated':
            await ctx.runMutation(internal.users.updateRoleInOrgForUser, {
                tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.public_user_data.user_id}`,
                orgId: result.data.organization.id,
                role: result.data.role === 'org:admin' ? "admin" : "member",
            });
            break;
export const createUser = internalMutation({
    args: { tokenIdentifier: v.string(), name: v.string(),  image: v.string() },
    async handler(ctx, args) {
        await ctx.db.insert("users", {
            tokenIdentifier: args.tokenIdentifier,
            orgIds: [],
            name: args.name,
            image: args.image
        })
    }
})

export const updateUser = internalMutation({
    args: { tokenIdentifier: v.string(), name: v.string(),  image: v.string() },
    async handler(ctx, args) {
        const user = await ctx.db
            .query("users")
            .withIndex("by_tokenIdentifier", (q) => 
                q.eq("tokenIdentifier", args.tokenIdentifier)
                ).first();

        if (!user) {
            throw new ConvexError("User not found");
        }

        await ctx.db.patch(user._id, {
            name: args.name,
            image: args.image
        })
    }
})

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions