Skip to content

[P2] Missing Plugin Icons (404 Errors) #130

@JoshuaAFerguson

Description

@JoshuaAFerguson

Severity: P2 - LOW (Cosmetic)
Component: UI - Plugin Catalog
Page: /admin/plugins/catalog

Issue

Console shows 404 errors for plugin icon assets. Example:

GET /plugins/streamspace-slack/icon.png 404

Plugins display broken image placeholders.

Impact

  • Minor visual issue
  • Doesn't affect functionality
  • Console clutter

Root Cause

  • Plugin icon files don't exist at expected paths
  • Icon URLs in database point to non-existent assets
  • No placeholder/fallback image

Files to Check

  • plugins/*/icon.png - Do these exist?
  • Database: catalog_plugins.icon_url - What URLs are stored?
  • ui/src/components/PluginCard.tsx - Image error handling

Fix Options

Option A: Add Real Icons

# Add icon.png to each plugin directory
plugins/streamspace-slack/icon.png
plugins/streamspace-teams/icon.png

Option B: Add Placeholder Image (RECOMMENDED)

<img
    src={plugin.iconUrl}
    onError={(e) => {
        e.target.src = '/assets/plugin-placeholder.png'
    }}
    alt={plugin.displayName}
/>

Option C: Use MUI Icons (RECOMMENDED)

import { Extension, Security, Business, Analytics } from '@mui/icons-material'

const getCategoryIcon = (category) => {
    switch(category) {
        case 'Security': return <Security />
        case 'Analytics': return <Analytics />
        case 'Business': return <Business />
        default: return <Extension />
    }
}

Recommendation: Option B + Option C - Use MUI icons by default, support custom icons with fallback

Testing

  • Plugins show icons (MUI or custom)
  • No 404 errors in console
  • Fallback works for missing icons
  • Placeholder is visually acceptable

Effort: 1-2 hours
Priority: Can defer to v2.1
Source: .claude/reports/UI_BUG_FIXES_REQUIRED.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2agent:builderAgent 2 - BuilderbugSomething isn't workingsize:s2-4 hoursstaleNo recent activity - will be closed if no responseuiux

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions