Preheat the oven to 350°F.
Evenly season all sides of the short ribs with kosher salt and black pepper. Set aside.
In a large oven-safe Dutch oven over medium-high heat, add the olive oil. Once hot and shimmering, sear the short ribs on all sides until browned, working in batches if necessary to avoid crowding the pot. Transfer the seared ribs to a plate and set aside.
Reduce the heat to medium. To the Dutch oven, add the diced onions and tomato paste. Stir to combine and cook for 2 minutes.
Pour in the Guinness. Stir, scraping up the browned bits from the bottom of the pot with a wooden spoon. Let the mixture simmer for about 5 minutes to cook off some of the alcohol.
Add the thyme, parsley, rosemary, Worcestershire sauce, and beef broth. Return the seared short ribs to the pot, making sure they are mostly submerged in the braising liquid.
Bring the mixture to a boil. Cover the Dutch oven with a lid and carefully transfer it to the preheated oven. Cook for 3 hours, or until the meat is fork-tender and starting to fall off the bone.
Remove the Dutch oven from the oven. Carefully transfer the ribs to a plate and loosely cover with aluminum foil to keep warm. Remove and discard the herb sprigs.
Carefully pour the remaining liquid through a fine mesh strainer into a large glass bowl. Discard any solids. Let the broth sit for a few minutes so the fat rises to the top, then use a spoon to skim off and discard the top layer of fat. You should be left with about 3 cups of liquid.
Return the Dutch oven to medium heat. Add the butter and let it melt completely, then whisk in the flour to form a smooth roux. Cook for about 1 minute.
Slowly pour the reserved broth back into the Dutch oven, whisking continuously to prevent lumps.
Bring the mixture to a simmer, then continue cooking for about 5 minutes, or until the sauce thickens enough to coat the back of a spoon.
Serve the ribs hot with the gravy spooned over the top.