In a medium pot over medium-low heat, add olive oil and bacon. Cook, stirring occasionally, until the bacon is crisp and has rendered its fat. Remove bacon with a slotted spoon and set aside, leaving the fat in the pot.
Add onion and celery. Cook for 5 minutes, stirring often, until softened. Add garlic and cook 2 minutes more, watching closely so it doesn't burn.
Sprinkle in flour and stir to coat the vegetables. Cook for 2 minutes, stirring constantly.
Slowly pour in the stock while stirring. Increase heat to medium-high and bring to a gentle simmer. Stir in tomato puree, bay leaf, thyme, smoked paprika, and red pepper flakes. Cover and simmer for 10 minutes, stirring occasionally.
Add potatoes. Partially cover and simmer until just fork-tender, about 12-15 minutes. Season the broth with salt and pepper. If the tomatoes taste too tart, add a pinch of sugar.
Reduce heat to low so the stew is hot but not boiling. Add catfish chunks and stir gently. Cover and cook below a simmer until the fish is just cooked through, 5-8 minutes.
Remove bay leaf. Taste and adjust seasoning with more salt, pepper, or red pepper flakes. Serve hot, topped with reserved crispy bacon.