Preheat oven to 375°F.
Heat olive oil in a large dutch oven pot over medium heat.
Sear ribs until dark golden brown. Do not crowd the pot. Cook in batches and transfer seared ribs to a plate. Set aside.
Add the sliced onions to the Dutch oven pot and cook until soft and translucent, about 5 minutes, stirring often.
Add tomato paste and stir to combine with the onions.
Add the beer to the pot and simmer until liquid has reduced by half; about 3-5 minutes.
Add parsley and thyme sprigs, beef broth, and Worcestershire sauce. Stir to combine.
Return the seared ribs and any juices that have accumulated on the plate back into the pot.
Cover pot and place it in the oven.
Heat for 1 hour. Remove pot from oven and turn ribs over.
Cover pot and return to the oven to cook for another hour.
Remove pot from the oven. Use tongs to remove ribs from the pot onto a plate. Carefully pour sauce from the pot into a large bowl. Fish out the thyme and parsley sprigs and discard them.
Use a ladle or spoon to skim off and discard any excess fat that forms along the top. Set sauce aside.
Using a fork, pull meat from the bones and shred the beef. Discard any tough gristle, excess fat, and bones. Set shredded meat aside.
Return the Dutch oven pot to the stove, add butter and heat over medium heat until melted.
Sprinkle flour into the pot and stir to combine with the butter forming a roux. Cook for 2-3 minutes to cook off the raw flour taste stirring constantly.
Ladle in the reserved gravy and stir to combine it with the roux. Keep adding gravy one ladle at a time until all of it has been added back to the pot. Whisk until there are no lumps of flour in the gravy.
Add mushrooms (do not drain) and stir to combine with gravy.
Let gravy simmer until thickened, about 5 minutes.
Return shredded beef to the pot and continue to cook until heated through.
Taste and season with salt and pepper.
Serve shredded beef with the rich gravy over a bed of mashed potatoes.
Top with chopped fresh parsley to serve if desired.