李建成暗地里召募了长安及各地的骁勇之士两千多人,充当自己东宫的卫士,让他们分别在东宫左右的长林门驻扎下来,号称长林兵。李建成还暗中让右虞候率可达志从燕王李艺那里调来幽州骁勇精锐的骑兵三百人,将他们安置在东宫东面的各个坊市中,准备用他们来补充在东宫担任警卫的军官。但这件事很快被人告发,李渊召见太子李建成,把他责备了一番,将可达志流放到了边疆。
庆州都督杨文干曾在太子东宫担任过警卫的职务,太子李建成和他很亲近,还厚待过他,因此他对李建成也很是感激,李建成私下里让他招募士兵悄悄送往长安。李渊准备前往仁智宫,命令太子李建成留守京城,李世民则与李元吉则一起随行李渊。这时候,李建成让李元吉乘机图谋杀害李世民,他说:“这件事关系到我们安危的大计,今年必须要做出决定了!”李建成又指使郎将尔朱焕和校尉桥公山将盔甲赠给杨文干,两人来到幽州的时候,上报发生变故,告发太子李建成指使杨文干起兵,让他与自己内外呼应,还有一位宁州人杜凤举也前往仁智宫说明了这一情况。李渊听了后大怒,借口有别的事情,亲笔诏书传召李建成,让他前往仁智宫。李建成心中害怕,不敢去。太子舍人徐师谟劝他占据京城,发兵起事,詹事主簿赵弘智劝他免去太子的车驾章服,屏除随从人员,主动到李渊那里承认罪责。
624年,李建成决定前往仁智宫,还没有走完六十里的路程,李建成便将所属官员,全部留在北魏毛鸿宾遗留下来的堡栅中,自己只带领十多个人骑马前去进见李渊,见到李渊后,李建成当即向父皇伏地叩头,承认罪责,身体猛然用力,把自己摔了出去,几乎晕死过去,可谓是承认错误的态度相当到位。但李渊的怒气仍然没有消除,当天夜里,将太子李建成囚禁在帐篷里,不给吃饭,只是给他麦饭用来充饥,让殿中监陈福看守着他,派遣司农卿宇文颖传召杨文干,宇文颖来到庆州后,将情况告诉了杨文干,杨文干决定起兵造反,李渊派左武卫将军钱九陇和灵州都督杨师道发兵攻打杨文干。
624年7月,李渊看到形势发生转变,便传来秦王李世民商量此事,李世民见到李渊后对他说:“杨文干竟敢做出这种狂妄叛逆的行为,他如此胆大妄为,想必他幕府的僚属们应该已经将他擒获并杀掉了,如果不是这样,就应当派遣一员将领去讨伐他。”李渊说:“不能这样,杨文干的事情关连着太子李建成,恐怕响应他的人为数众多,这件事你最好亲自前往,回来以后,我便将你立为太子。我不愿意效法隋文帝去诛杀自己的儿子,到时候就把李建成降为蜀王。蜀中兵力薄弱,如果以后他能够事奉你,你就应该保全他的性命,如果他不肯和你同心一道,你要捉拿他也很容易。”
因为仁智宫建在山中,李渊担心盗兵突然发难,便连夜率领担任警卫的军队从南面出山,走了数十里地的时候,太子东宫的官员们相继到来,李渊让大家一概以三十人为一队,分派军队包围、看守住他们,第二天,李渊才返回仁智宫。李世民出发后,李元吉与李渊的嫔妃们轮番替太子李建成求情,封德彝又在外朝设法解救李建成。在这些人一番里应外合之中,李渊改变了初衷,又让李建成回京城留守。当初洛阳平定以后,杜淹长时间没有得到升迁,打算谋求事奉李建成,房玄龄认为杜淹狡诈阴险,担心他会引导教唆李建成对李世民不利,便向李世民进言,将杜淹推荐到天策上将府任职。最后,李渊只是以他致使兄弟关系不和睦的过错责备李建成,转而将罪责推给了太子中允王圭、左卫率韦挺和天策上将府兵曹参军杜淹,将他们一并流放。这件事最终以大事化小的方式被搁浅。