In a previous game, I sent one squad to raid an enemy site, then a little later sent a second squad to conquer the same site. Due to a sleeping soldier in the first squad, the second squad reached the site first and successfully conquered it. When the first squad arrived, they proceeded to raid the site as instructed, looting artifacts and treasure from my new holding.
In a new world, I created multiple raid missions against enemy sites but assigned no squads. When those sites subsequently changed ownership, I could modify and assign squads to complete the existing raid missions against my parent civilization and my own holdings. During one such raid, my squad was spotted leaving, initiating a civil war. I then demanded tribute from one of my holdings; instead of restoring peace it added that site government to the civilizations list, at war with me and our parent civilization.
From poking around the diplomacy relationships, it appears that wars are only tracked at the "civilization" entity level--sites inherit and modify their civilization's status. So when a "civil war" occurs, a civilization records a war against itself. Since all the civilization's sites inherit that value, they all believe they are at war with their parent civilization and every other site in that civilization.
An active civil war disrupts diplomacy and trade with your parent civilization. I was unable to find any legitimate method to resolve the civil war. One of my tribute demands was apparently successful (one holding now provides yearly tribute), but my squad became 'stuck' traveling to a different site with a tribute demand (I don't know if that's a result of the civil war or just a standard mission bug).
I was able to cancel the civil war with DFHack 0.44.12-r2. Running this script removed the 'W' on the civilizations screen and resumed diplomacy/trade with my parent civilization, however it's quite possible that there are other aspects that might cause future problems. It's always a good idea to back up your save before modifying it with DFHack.
-- Force peace with hostile parent civilization
--[====[
fix/civil-war
=============
Reset diplomacy relationship of parent civilization to end a civil war.
]====]
local civ = df.historical_entity.find(df.global.ui.civ_id)
for _,ent in pairs(civ.unknown1b.diplomacy) do
if ent.group_id == civ.id and ent.relation > 0 then
ent.relation = 0
print("Civil war removed")
end
end